UnityではMonoBehabiourを継承したクラスではコンストラクタが使えないですよね。
そこでいろいろ調べたらStart()やAwake()を代わりに使用してくださいとのことでしたが、その使用方法がわかりません。
思いついた方法としては
C#
1//ScriptB 2ScriptA sc; 3int x; 4int y; 5void Start(){ 6 sc = GameObject.Find("obj").GetComponent<ScriptA>(); 7 this.x = sc.x; 8 this.y = sc.y; 9}
です。
呼び出し先(ScriptA)にアサインされているobjを見つけてからその中のScriptAコンポーネントを発掘してScriptBのxyに代入することでコンストラクタのようなことができそうです。
それ以外に方法はあるのでしょうか。
この二つのスクリプトが別のオブジェクトにアサインされている場合はいいのですが、仮にこの呼び出し元と呼び出し先のスクリプトが同オブジェクトにアサインされている場合このGameObject().Findが個人的に遠回りしているようであまり好ましくないような気がします。
もっと直感的なコードがあれば宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。