激活和停用不起作用的对象

时间:2017-08-29 08:33:41

标签: c# unity3d

我试图制作一个壁炉,如果我需要收集木材并在火场上使用它但没有任何反应,我使用debug.log来查看变量是否正确接收更改并且其工作完美但是if我有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);
    }

}
}

2 个答案:

答案 0 :(得分:1)

您必须将脚本移动到另一个对象上。

由于非活动游戏对象的所有组件都处于非活动状态,因此其上的脚本也将处于非活动状态,您将无法再次激活该对象。将粒子系统放在包含脚本的另一个对象中可能是更好的选择。 (您将基本激活和取消激活您的子对象(火))。

答案 1 :(得分:1)

更改游戏对象的名称,通常名称必须以小写字母开头,尝试使用类似enableDisable的名称;

你也已经创建了一个启用/禁用GameObject的方法,为什么你不改变这个代码......

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<p><img src="Anyimg.jpg" alt="some image"></p>
<p>My best friend is Mickey.</p>
<p>Who is your favourite</p>