ScriptA.csUnity記事: 目次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
using UnityEngine; /// <summary> /// /// Unity 2018.2.14f1 /// /// ScriptBの変数の値を取得・変更する&関数を実行する /// /// </summary> public class ScriptA : MonoBehaviour { // Inspector [SerializeField] private ScriptB anotherScript; // Use this for initialization private void Start() { // 1. 同じオブジェクトにアタッチしているスクリプトを参照する // anotherScript = GetComponent<ScriptB>(); // 2. 上の階層のオブジェクトにアタッチしているスクリプトを参照する // anotherScript = GetComponentInParent<ScriptB>(); // 3. ルートオブジェクトにアタッチしているスクリプトを参照する // GameObject rootObject = transform.root.gameObject; // anotherScript = rootObject.GetComponent<ScriptB>(); // 4. 親オブジェクトにアタッチしているスクリプトを参照する // GameObject parentObject = transform.parent.gameObject; // anotherScript = parentObject.GetComponent<ScriptB>(); // 5. 下の階層のオブジェクトにアタッチしているスクリプトを参照する // anotherScript = GetComponentInChildren<ScriptB>(); // 6. 子オブジェクトにアタッチしているスクリプトを参照する // GameObject childObject = transform.Find("子オブジェクトの名前").gameObject; // anotherScript = childObject.GetComponent<ScriptB>(); // 7. 孫オブジェクトにアタッチしているスクリプトを参照する // GameObject childObject = transform.Find("子オブジェクトの名前/孫オブジェクトの名前").gameObject; // anotherScript = childObject.GetComponent<ScriptB>(); // 8. 別オブジェクトにアタッチしているスクリプトをタグで参照する // GameObject anotherObject = GameObject.FindWithTag("別オブジェクトのタグ"); // anotherScript = anotherObject.GetComponent<ScriptB>(); // 9. 別オブジェクトにアタッチしているスクリプトをオブジェクト名で参照する // GameObject anotherObject = GameObject.Find("別オブジェクトの名前"); // anotherScript = anotherObject.GetComponent<ScriptB>(); Debug.Log("hogeの初期値"); GetValue(); Debug.Log("hogeに2をセット"); SetValue(2); Debug.Log("関数:Add1ToHogeを実行"); CallFunction(); } // 変数の値の取得 private void GetValue() { Debug.Log("hoge = " + anotherScript.Hoge); } // 変数に値をセット private void SetValue(int value) { anotherScript.Hoge = value; Debug.Log("hoge = " + anotherScript.Hoge); } // 関数の実行 private void CallFunction() { anotherScript.Add1ToHoge(); Debug.Log("hoge = " + anotherScript.Hoge); } } |
ScriptB.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using UnityEngine; /// <summary> /// /// Unity 2018.2.14f1 /// /// 参照されるスクリプト /// /// </summary> public class ScriptB : MonoBehaviour { // 変数 private int hoge = 1; // hogeの取得・変更用プロパティ public int Hoge { // 取得 get { return hoge; } // 変更 set { hoge = value; } } // hogeに1を足す関数 public void Add1ToHoge() { hoge++; } } |