ModelとControllerのようにスクリプトを分けて作成している場合、Controllerのスクリプトを追加すると自動的にModelスクリプトが追加されるようにしておくと便利。
必須コンポーネントを指定するには
[RequireComponent(typeof(必須コンポーネント名))]
と記述する。
サンプル
TapScannerはTapModelを必須として指定。
TapControllerはTapModelとTapScannerを必須として指定。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using UnityEngine; using System.Collections; public class TapModel : MonoBehaviour { private bool _flag; public bool Flag { get { return _flag; } set { _flag = value; } } } |
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 |
using UnityEngine; using System.Collections; [RequireComponent(typeof(TapModel))] public class TapScanner : MonoBehaviour { private TapModel _tapModel; void Start() { _tapModel = GetComponent<TapModel>(); } public void update() { if (Input.touchCount > 0) { _tapModel.Flag = true; } else { _tapModel.Flag = false; } } } |
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 |
using UnityEngine; using System.Collections; [RequireComponent(typeof(TapModel))] [RequireComponent(typeof(TapScanner))] public class TapController : MonoBehaviour { private TapModel _tapModel; private TapScanner _tapScanner; void Start() { _tapModel = GetComponent<TapModel>(); _tapScanner = GetComponent<TapScanner>(); } void Update() { _tapScanner.update(); print(_tapModel.Flag); } } |
TapScannerやTapControllerをオブジェクトに追加すると、必須指定したものが自動的に追加される。RequireComponentではコンポーネントが重複して追加されることはない。
必須指定したコンポーネントを削除しようとするとダイアログが表示され、削除することはできない。必須指定している側のコンポーネントを先に削除する必要がある。
コメントを残す
コメントを投稿するにはログインしてください。