facebook twitter hatena line email

Unity/MonoBehaviour

提供: 初心者エンジニアの簡易メモ
2022年1月21日 (金) 03:30時点におけるAdmin (トーク | 投稿記録)による版 (前回Update処理からの時間取得)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

MonoBehaviourとは

オブジェクトの基底クラス

オブジェクトを取ってくる方法

GameObject.Findを使うか、プロパティを使う。

プロパティを使う場合

  1. 以下SceneをMainCameraなどに貼り付ける
  2. MainCameraのInspectorを開き、PropertyObjectSceneのuserNameなどに文字を入れる
  3. 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)