Unity/MonoBehaviour
提供: 初心者エンジニアの簡易メモ
目次
MonoBehaviourとは
オブジェクトの基底クラス
オブジェクトを取ってくる方法
GameObject.Findを使うか、プロパティを使う。
プロパティを使う場合
- 以下SceneをMainCameraなどに貼り付ける
- MainCameraのInspectorを開き、PropertyObjectSceneのuserNameなどに文字を入れる
- MainCameraのInspectorを開き、PropertyObjectSceneのuserNameTextObjやuserNameTextに、Scene上に作ったTextオブジェクトをドラッグ
public class PropertyObjectScene : MonoBehaviour { public string userName; public int age; public GameObject userNameTextObj; public Text userNameText; public List<int> nums; // Start is called before the first frame update void Start() { // GameObjectからGetComponentして、設定する場合 userNameTextObj.GetComponent<Text>().text = userName; // Textへ直で、設定する場合 userNameText.text = userName; // ageを表示 Debug.Log("age=" + age); // リストなども使える foreach (int num in nums) { Debug.Log("num=" + num); } } }
GameObject.Findで取得
こちらを参照。 Unity/GameObject [ショートカット]]
csの処理順序
DefaultExecutionOrderを使う。
以下例では、DefaultExecutionOrder2Sceneの次に、DefaultExecutionOrderSceneが実行される。
[DefaultExecutionOrder(1)] // 大きいと遅く、小さいと早い、通常は0 public class DefaultExecutionOrderScene : MonoBehaviour { void Start() { Debug.Log("DefaultExecutionOrderScene"); } } [DefaultExecutionOrder(-1)] // 大きいと遅く、小さいと早い、通常は0 public class DefaultExecutionOrder2Scene : MonoBehaviour { void Start() { Debug.Log("DefaultExecutionOrder2Scene"); } }
前回Update処理からの時間取得
Time.deltaTime // 秒で取得(例:0.02)
SerializeField
[SerializeField]をつけるとAddComponentした際に、Inspectorに表示される
[SerializeField] private string userName; // Inspectorで、textの入力ができる [SerializeField] private bool on; // Inspectorで、チェックボックスがでる [SerializeField] private int age; // Inspectorで、数字の入力ができる