2017-08-29 8 views
0

私は木を集めて火の場所で使用する必要がありましたが、何も起こらないように火の場所を作ろうとしましたが、変数が正しいかどうかを確認するdebug.logそしてその仕事は完璧ですが、もし私がfireonplace変数= 1を持っていたら、暖炉オブジェクトをアクティブにします。木材は変数に挿入されていますが、火災を引き起こすトリガーは発生しません。 これは、あなたが他のオブジェクトにスクリプトを移動する必要が私のコードオブジェクトが動作していないことを有効にして無効にする

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 
public class enablefire : MonoBehaviour { 
public GameObject Enable_Disable; 
public static int woodonfire = 0; 

public void Enable() 
{ 
    Enable_Disable.SetActive (true); 
} 
public void Disable() 
{ 
    Enable_Disable.SetActive (false); 
} 
// Use this for initialization 
void Start() 
{ 
    Enable(); 
    //Enable_Disable.SetActive (false); 
} 

void Update() 
{ 
    if (woodonfire >= 1) 
    { 
     Enable_Disable.SetActive (true); 
    } 
    if (woodonfire == 0) 
    { 
     Enable_Disable.SetActive (false); 
     //Enable_Disable.SetActive (false); 
    } 

} 
} 
+0

@Isukaを作成しました"+ enablefire.woodonfire);とwen私は木を使用するためにボタンをクリックして、変数の変更が正しい – ines

+0

@犬舎はいその粒子システム、playonawake私はタンクので、私はそれを変更することができます私はCで新しいです# – ines

+0

@伊香私はちょうど参照してください – ines

答えて

1

ゲームオブジェクトの名前を変更します。名前は小文字で始まりますが、名前はenableDisableのように試してください。

はまた、あなたはすでにはい、私は「火の木をDEBUG.LOG(とデバッグにそれを持っているあなたはこのコードを変更していない理由を有効/ゲームオブジェクトを無効にする方法...

void Update() 
{ 
    if (woodonfire >= 1) 
    { 
    Enable(); 
    } else if (woodonfire == 0) 
    { 
    Disable();    
    } 

} 
+1

これは完全な解決策だったのだろうか、あるいは彼がスクリプトがあったオブジェクト –

1

です。

非アクティブなゲームオブジェクトはすべてのコンポーネントを非アクティブにしているため、そのオブジェクトのスクリプトも非アクティブになり、オブジェクトを再びアクティブにすることはできません。スクリプトを含む別のオブジェクトにパーティクルシステムを作成する方が良い方法かもしれません。 (あなたは基本的にあなたの子オブジェクトを起動し、非アクティブにします(火))。

+0

タンクこれはtricをしました – ines

関連する問題