Unityにおいて,C#で以下のように,ボタンを押すとGameObject ObjにBBBがAddComponentされるようなコードを書きました.
C#
1public class AAA : MonoBehaviour 2{ 3 public GameObject Obj = null; 4 public UnityEngine.UI.Button BBButton; 5 void Start() 6 { 7 BBButton.onClick.AddListener(() => 8 { 9 Obj.AddComponent<BBB>(); 10 } 11 } 12}
C#
1public class BBB : MonoBehaviour 2{ 3 public Text myText; 4 void Start() 5 { 6 myText = GameObject.Find("DebugText").GetComponent<Text>(); 7 myText.text = "bbb"; 8 } 9}
これをUnity上で実行し,実行画面上のボタンを押すとログとして「bbb」が出力されるのですが,Build&Runすると,実行画面上のボタンを押してもテキストが出力されませんでした.
Build&Runして,ボタンを押した際,class AAA内のBBButton.onClick.AddListener(() =>{}内に入ってることは確認できたので,Obj.AddComponent<BBB>();がうまくいっていないのだと思われます.
Unity上での実行ではうまくいったので,何か設定などがまずいのでしょうか?
よろしくお願いします.
ーーーーーーーーー追記ーーーーーーーーー
Unityのバージョンは2018.1.4f1でした.
また,以前こちらで質問したようなエラーが出て,Build&Runができなかったことがあったのですが,「Player Settings...」→「Other Settings」→「Scripting Runtime Version」を「.NET 3.5 Equivakent」から「.NET 4.x Equivakent」に変更したことで通ったのでそのままにしていますが,それが関係しているということはありますでしょうか?
ーーーーーーーーー追記2ーーーーーーーーー
少し原因がわかったため,こちらで質問し直しました.
もしよかったらご覧ください.