前回、この話をどっかにやっちゃったのでやるよ!
俺の中で、仮説を立ててみた。なんだが、なんかよくよく見たら、こんなんあった
Buttonを
「RepeatButton」
にすればいいのでは?と。
RepeatButtonは、押してる限り、呼び出され続けるボタン。
なんか変わるかなぁ?と思って、やってみた。
右 っ か わ
複数押されてたことに気が付かんかった・・・
別に、
「何個もログが出る」
ってわけではなかったんや・・・
気がつけばなぁ・・・
これはこれとして、
ひとつのボタンにまとめて~ってやって、後はポチッとな!これ。
・・・とやりたかった。カチカチやりたかった。でも~反応しねぇ!else飛んだ!
やばいよやばいよ!ガチでやばいよ!!
いやぁーねぇ。
using UnityEngine;ってやった。
using System.Collections;
public class ControlPanel : MonoBehaviour {
GameObject Current_Camera;
GameObject Main_Camera;
GameObject Go_Camera;
GameObject Go2_Camera;
GameObject Right_Camera;
GameObject Left_Camera;
GameObject Back_Camera;
GameObject Up_Camera;
GameObject Lost_Camera;
GameObject Ball_Camera;
void Start () {
Current_Camera = GameObject.FindWithTag("MainCamera");
Main_Camera = GameObject.FindWithTag("MainCamera");
Go_Camera = GameObject.FindWithTag("GoCamera");
Go2_Camera = GameObject.FindWithTag("Go2Camera");
Right_Camera = GameObject.FindWithTag("RightCamera");
Left_Camera = GameObject.FindWithTag("LeftCamera");
Back_Camera = GameObject.FindWithTag("BackCamera");
Up_Camera = GameObject.FindWithTag("UpCamera");
Lost_Camera = GameObject.FindWithTag("LostCamera");
Ball_Camera = GameObject.FindWithTag("BallCamera");
Debug.Log ("Main_Camera: " + Main_Camera.name);
Debug.Log ("Go_Camera: " + Go_Camera.name);
Debug.Log ("Go2_Camera: " + Go2_Camera.name);
Debug.Log ("Right_Camera: " + Right_Camera.name);
Debug.Log ("Left_Camera: " + Left_Camera.name);
Debug.Log ("Back_Camera: " + Back_Camera.name);
Debug.Log ("Up_Camera: " + Up_Camera.name);
Debug.Log ("Lost_Camera: " + Lost_Camera.name);
Debug.Log ("Ball_Camera: " + Ball_Camera.name);
}
void OnGUI () {
GUIStyle style = new GUIStyle();
style.fontSize = 30;//文字サイズ
style.normal.textColor = Color.white;//文字色
Debug.Log("通るって");
if ( GUI.Button( new Rect(1100, 400, 200, 50), "Start!" )){
Debug.Log("Startボタンが押されました。");
GameObject startComp;
startComp = GameObject.Find ("Start Button");
startComp.GetComponent<ballshoot>().OnMouseDown();
}
if ( GUI.Button( new Rect(1100, 460, 200, 50), "Reset?" )){
Debug.Log("Resetボタンが押されました。");
GameObject resetComp;
resetComp = GameObject.Find ("Reser Button");
resetComp.GetComponent<Reset>().OnMouseDown();
}
if ( GUI.Button( new Rect(1100, 520, 200, 50), "Camera" )){
Debug.Log("Cameraボタンが押されました。");
ChangeView();
}
// if ( GUI.RepeatButton( new Rect(1100, 520, 200, 50), "Camera" )){
// Debug.Log("Cameraボタンが押されました。");
// // ChangeView();
// }
}
void ChangeView(){
Debug.Log ("通るよ" + Current_Camera.name);
if (Current_Camera.name == Main_Camera.name) {
Current_Camera = Go_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = true;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
} else if (Current_Camera.name == Go_Camera.name) {
Current_Camera = Go2_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = true;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
} else if (Current_Camera.name == Go2_Camera.name) {
Current_Camera = Right_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = true;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
} else if (Current_Camera.name == Right_Camera.name) {
Current_Camera = Left_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = true;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
} else if (Current_Camera.name == Left_Camera.name) {
Current_Camera = Back_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = true;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
} else if (Current_Camera.name == Back_Camera.name) {
Current_Camera = Up_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = true;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
} else if (Current_Camera.name == Up_Camera.name) {
Current_Camera = Lost_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = true;
Ball_Camera.camera.enabled = false;
} else if (Current_Camera.name == Lost_Camera.name) {
Current_Camera = Ball_Camera;
Main_Camera.camera.enabled = false;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = true;
} else if (Current_Camera.name == Ball_Camera.name) {
Current_Camera = Main_Camera;
Main_Camera.camera.enabled = true;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
} else {
Debug.Log("やばいよやばいよ");
Current_Camera = Main_Camera;
Main_Camera.camera.enabled = true;
Go_Camera.camera.enabled = false;
Go2_Camera.camera.enabled = false;
Right_Camera.camera.enabled = false;
Left_Camera.camera.enabled = false;
Back_Camera.camera.enabled = false;
Up_Camera.camera.enabled = false;
Lost_Camera.camera.enabled = false;
Ball_Camera.camera.enabled = false;
}
}
}
単純に、
「GameObject」
もなんにもない
「Current_Camera」
を利用している。
「正常に動作しないんじゃね!?」
と思うかもしれないが、これは
「『Current_Camera』に指定するCameraを切り替える」
という処理をしている。
enable関係は、単純にこれが無いと、
「どのCameraをenableにするか、どのCameraをdisabledにするか」
ができない。
この処理をやらないと、正常にCameraが切り替わらない。
このコードでは、
「GUI表示」
もやっている。
それで実際、GUIから発射などもできるようになっている。
このボタンの通り。
ボールを追うCameraもあるよ!
やってみたい?いやいや。まだまだ。課題は残ってるからねぇ。