facebook twitter hatena line email

「Unity/MonoBehaviour」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==MonoBehaviourとは== オブジェクトの基底クラス ==オブジェクトを取ってくる方法== GameObject.Findを使うか、プロパティを使う。 ==...」)
 
(選択形式)
 
(同じ利用者による、間の19版が非表示)
行16: 行16:
 
     public GameObject userNameTextObj;
 
     public GameObject userNameTextObj;
 
     public Text userNameText;
 
     public Text userNameText;
 +
    public List<int> nums;
 
     // Start is called before the first frame update
 
     // Start is called before the first frame update
 
     void Start()
 
     void Start()
行25: 行26:
 
         // ageを表示
 
         // ageを表示
 
         Debug.Log("age=" + age);
 
         Debug.Log("age=" + age);
 +
        // リストなども使える
 +
        foreach (int num in nums)
 +
        {
 +
            Debug.Log("num=" + num);
 +
        }
 
     }
 
     }
 
}
 
}
 
</pre>
 
</pre>
 +
 
==GameObject.Findで取得==
 
==GameObject.Findで取得==
 
こちらを参照。
 
こちらを参照。
 
[[Unity/GameObject]] [ショートカット]]
 
[[Unity/GameObject]] [ショートカット]]
 +
 +
==csの処理順序==
 +
DefaultExecutionOrderを使う。
 +
 +
以下例では、DefaultExecutionOrder2Sceneの次に、DefaultExecutionOrderSceneが実行される。
 +
 +
<pre>
 +
[DefaultExecutionOrder(1)] // 大きいと遅く、小さいと早い、通常は0
 +
public class DefaultExecutionOrderScene : MonoBehaviour
 +
{
 +
    void Start()
 +
    {
 +
        Debug.Log("DefaultExecutionOrderScene");
 +
    }
 +
}
 +
[DefaultExecutionOrder(-1)] // 大きいと遅く、小さいと早い、通常は0
 +
public class DefaultExecutionOrder2Scene : MonoBehaviour
 +
{
 +
    void Start()
 +
    {
 +
        Debug.Log("DefaultExecutionOrder2Scene");
 +
    }
 +
}
 +
</pre>
 +
==前回Update処理からの時間取得==
 +
Time.deltaTime // 秒で取得(例:0.02)
 +
 +
==SerializeField==
 +
[SerializeField]をつけるとAddComponentした際に、Inspectorに表示される
 +
<pre>
 +
[SerializeField] private string userName; // Inspectorで、textの入力ができる
 +
[SerializeField] private bool on; // Inspectorで、チェックボックスがでる
 +
[SerializeField] private int age; // Inspectorで、数字の入力ができる
 +
[SerializeField] [Range(0, 200)] private int age; // Inspectorで、0-200までの数字の入力がスライド付きでできる
 +
[SerializeField] [TextAreaAttribute] private string descripton; // inspectorで複数行文字を入れることができる
 +
[SerializeField] private color lineColor = Color.red; // Inspectorで、色編集ができる
 +
</pre>
 +
 +
参考:https://wizardia.hateblo.jp/entry/2023/10/26/100000
 +
 +
===選択形式===
 +
<pre>
 +
enum CompanyType
 +
{
 +
  Toyota,
 +
  Nissan,
 +
}
 +
[SerializeField] private CompanyType companyType = CompanyType.Toyota; // Inspectorで、選択ができる
 +
</pre>
 +
 +
===その他===
 +
<pre>
 +
[Header("項目1")] // 項目表示
 +
[SerializeField, Header("項目2")] private Button editButton; // SerializeFieldと一緒に書く場合
 +
[Space(30)] // 余白

2023年12月5日 (火) 09:22時点における最新版

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)

SerializeField

[SerializeField]をつけるとAddComponentした際に、Inspectorに表示される

[SerializeField] private string userName; // Inspectorで、textの入力ができる
[SerializeField] private bool on; // Inspectorで、チェックボックスがでる
[SerializeField] private int age; // Inspectorで、数字の入力ができる
[SerializeField] [Range(0, 200)] private int age; // Inspectorで、0-200までの数字の入力がスライド付きでできる
[SerializeField] [TextAreaAttribute] private string descripton; // inspectorで複数行文字を入れることができる
[SerializeField] private color lineColor = Color.red; // Inspectorで、色編集ができる

参考:https://wizardia.hateblo.jp/entry/2023/10/26/100000

選択形式

enum CompanyType
{
  Toyota,
  Nissan,
}
[SerializeField] private CompanyType companyType = CompanyType.Toyota; // Inspectorで、選択ができる

その他

[Header("項目1")] // 項目表示
[SerializeField, Header("項目2")] private Button editButton; // SerializeFieldと一緒に書く場合
[Space(30)] // 余白