Unity の基本codeメモ
Sceneの中からGameObject見つけたいとき
GameObject obj = GameObject.Find("obj_name");
GameObjectのComponentにアクセスしたいとき
例えば、オブジェクトのテキストを変更するなら
GameObject obj = GameObject.Find("obj_name"); obj.GetComponent<Text>().text = "hello";
オブジェクトに付けたスクリプトの関数呼びたいなら
// obj_nameに付けたSourceManager.csに書いたFunc()を呼びたいとき var obj = GameObject.Find("obj_name"); obj.GetComponent<SourceManager>().Func(); // public宣言することを忘れずに
一度GameObjectで受けなくてもダイレクトでもいじれる。例えばSliderの値なら
GameObject.Find("Slider_name").GetComponent<Slider>().value;
定期処理とかでコルーチン使うとき
例えば、0.1秒だけカメラ変えたいとき。
IEnumerator Coru() { while (true) { GameObject cam = GameObject.Find("Cameras"); GameObject cav = GameObject.Find("Canvas"); // メインカメラがアクティブなら if (cam.transform.FindChild("Main Camera").gameObject.activeSelf == true) { // カメラの位置を0.1秒間変える。(別カメラにする) cav.GetComponent<Canvas>().enabled = false; // gui消す cam.transform.FindChild("Main Camera").gameObject.SetActive(false); cam.transform.FindChild("SubCamera").gameObject.SetActive(true); yield return new WaitForSeconds(0.1f); // 0.1秒後にもう一度コルーチンが呼ばれるようにする } else { // 0.1秒後にカメラを戻す cav.GetComponent<Canvas>().enabled = true; // gui表示する cam.transform.FindChild("SubCamera").gameObject.SetActive(false); cam.transform.FindChild("Main Camera").gameObject.SetActive(true); yield break; // コルーチン終了する } } }
んでコルーチン呼びたいときは
StartCoroutine("Coru");
結果、Unity 面白れぇ!!