Tips

【Unity】スクリプトからMain Cameraを取得するのは簡単だよ
2018.01.31

【Unity】スクリプトからMain Cameraを取得するのは簡単だよ

Main Cameraの取得はFindGameObjectWithTagやGetComponentを使わなくてもできるという話

※この記事で使用しているUnityのバージョンは2017.1.0f3です。
[Unity_317×90]

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ゲーム開発

Recent News

Recent Tips

Tag Search