▶
【Unity連載】プレハブの使い方①(作成・複製)
▶
【Unity連載】プレハブの使い方②(編集)
▶
【Unity連載】BGM・SE(効果音)の付け方
▶
【Unity連載】uGUI(Scrollbar)の使い方を詳しく解説
▶
【Unity連載】uGUI(InputField)の使い方を詳しく解説
▶
【Unity連載】uGUIのCanvasとRenderModeについて詳しく解説
▶
【Unity連載】GetComponentを具体例付きで解説
▶
【Unity連載】GameObject.Findを具体例付きで解説
▶
【Unity連載】Instantiateを具体例付きで解説
Main Cameraの取得はFindGameObjectWithTagやGetComponentを使わなくてもできるという話
※この記事で使用しているUnityのバージョンは2017.1.0f3です。
Camera.mainを使おう!
「Camera.main」を使うとスクリプトがとてもシンプルになります。(Main Cameraは1台の想定)
例えばメインカメラのCameraコンポーネントを変数に取得したければ、こんな感じでOK
using UnityEngine; public class GetMainCamera : MonoBehaviour { Camera cam; void Start () { cam = Camera.main; } }
メインカメラのGameObjectを取得したければ、後ろにgameObjectをつけるだけでOK
using UnityEngine; public class GetMainCamera : MonoBehaviour { GameObject mainCamObj; void Start () { mainCamObj = Camera.main.gameObject; } }
Camera.mainは「MainCamera」のTagがついたCameraコンポーネントを裏側で取得してくれています。Tagを変えてしまうと機能しないので気を付けること。
Camera.mainを使わないと…
Camera.mainを使わない場合、FindGameObjectWithTagとGetComponentを使うことになる。もちろん問題はないが、↑のやり方に比べるとまどろっこしい気がする。
using UnityEngine; public class GetMainCamera : MonoBehaviour { GameObject mainCamObj; Camera cam; void Start () { mainCamObj = GameObject.FindGameObjectWithTag("MainCamera"); cam = mainCamObj.GetComponent<Camera>(); } }
GameObjectはタグを使わずにオブジェクト名からFindで取得することも出来る。ただし名前が変わるとnullが返ってくるので注意。
using UnityEngine; public class GetMainCamera : MonoBehaviour { GameObject mainCamObj; Camera cam; void Start () { mainCamObj = GameObject.Find("Main Camera"); cam = mainCamObj.GetComponent<Camera>(); } }
スクリプトはシンプルかつ読みやすいことが大切ですね!
以上です。
▶
【Unity連載】プレハブの使い方①(作成・複製)
▶
【Unity連載】プレハブの使い方②(編集)
▶
【Unity連載】BGM・SE(効果音)の付け方
▶
【Unity連載】uGUI(Scrollbar)の使い方を詳しく解説
▶
【Unity連載】uGUI(InputField)の使い方を詳しく解説
▶
【Unity連載】uGUIのCanvasとRenderModeについて詳しく解説
▶
【Unity連載】GetComponentを具体例付きで解説
▶
【Unity連載】GameObject.Findを具体例付きで解説
▶
【Unity連載】Instantiateを具体例付きで解説