2014年10月18日土曜日

視点切り替え機能の追加 その5

はぁ・・・長くなっちゃったなぁ・・・

前回、この話をどっかにやっちゃったのでやるよ!

俺の中で、仮説を立ててみた。
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もあるよ!





 やってみたい?いやいや。まだまだ。課題は残ってるからねぇ。

0 件のコメント:

コメントを投稿