2017-05-22 10 views
0

UnityのUI設定には、UIで特定のイベントが発生するたびにアクティブ化されるエラーラベルがあります。初めてイベントが発生したとき、それは大丈夫です。そのメニューに戻ったとき、SetActive(false)を使ってラベルが無効になります。私が最初のボタンをもう一度押すと、Error Label GameObjectはシーン階層でアクティブとして表示されますが、画面上には表示されません(手作業で非アクティブ化し、エディタのインターフェイスから再度アクティブにすると大丈夫です)。これはエディタとターゲットデバイス(iPhoneとAndroid)でビルドされて実行されるときの両方で発生します。Unity3DのUIコンポーネントを無効にして有効にしても、それらはレンダリングされません

私はこれがUnity 5.6の既知の問題であることに気付きましたが、解決するまで回避策を見つけることができませんでした。任意の提案をいただければ幸いです。

EDIT:要求通りのボタンコード。

可変コンポーネントは、ボタンによってアクティブ化されるGameObjectを示します。このグループには現在のUI画面が保持され、無効になります。

あなたはこのようにUI要素を再構築しようとすることができ
public void ActionOnClick() { 
       if (component) { 
        component.SetActive(true); 
       } 
       thisGroup.SetActive(false); 
      } 
     } 
+0

それはちょうどUIのゲームオブジェクトがのsetActive経由で起動されています –

+0

に答えるために、あなたのコードを共有してください()。既に述べたように、GameObjectはアクティブになりますが、コンテンツ(テキストやイメージなど)はレンダリングされません。 –

+0

エラーメニューの「戻る」ボタンに含まれるコードを見て、あなたの説明を使用するかのように、あなたが見ている予期しない副作用をしていないことを保証したいあなたの問題を再現しようとすると、私は「私のために働く」ことになるでしょう。つまり、あなたの問題を再現することはできません。 @ --mentionを使用して返信するか、通知を受け取ることはありません。 – Draco18s

答えて

0

myGameObject.GetComponent<Graphic>().Rebuild(); 

それとも再構築()を使用すると、グラフィックを継承するコンポーネントを開いている場合は、また、オブジェクトを移動しようとすることができます オブジェクトの内部状態が汚れると団結はこのように、それを再構築するよう:

myGameObject.transform.Translate(new Vector3(0, 0, 0)); 
+0

両方とも試してみましたが、どちらもうまくいきませんでした。前と同じ動作。 –

+0

は何らかの親のコンポーネントですか?これは、gameObjectがactiveSelfであるが親が非アクティブである可能性があるためです。 – Rakiah

+0

それはそうではありません。 gameObjectとそのすべての親がアクティブです。 –

関連する問題