UnityのUIで開始時にSetActive(false)でtext、image、panelの三つを非表示してUpdate()でSpaceキーが押されたとき先ほどのtext、image、panelの三つを表示しようとしています。しかしStart()しか実行されずUpdate()は実行されません。いろいろ試したところStart()内のtext.SetActive(false);、image.SetActive(false);、panel.SetActive(false);の三行を消すとUpdate()が実行されることがわかりました。どうしたらよいでしょうか?お願いします。ちなみにTextオブジェクトに下のプログラムをアタッチしていてこのまま実行するとText、Image、Panelの三つのオブジェクトが非表示になりConsoleにはOK1とだけ表示されます。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class Massage : MonoBehaviour 7{ 8 GameObject text; 9 GameObject image; 10 GameObject panel; 11 12 void Start() 13 { 14 this.text = GameObject.Find("Text"); 15 this.image = GameObject.Find("Image"); 16 this.panel = GameObject.Find("Panel"); 17 text.SetActive(false);//これと 18 image.SetActive(false);//これと 19 panel.SetActive(false);//これを消すとUpdate()が実行される 20 Debug.Log("OK1");//動作テスト1 21 } 22 23 24 25 void Update() 26 { 27 Debug.Log("OK2");//動作テスト2 28 if (Input.GetKeyDown(KeyCode.Space)) 29 { 30 SetMessage(); 31 Debug.Log("OK3");//動作テスト3 32 } 33 34 } 35 36 void SetMessage()//これで表示させる 37 { 38 text.SetActive(true); 39 image.SetActive(true); 40 panel.SetActive(true); 41 42 } 43} 44
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/22 06:00