无法重新打开脚本

时间:2016-01-12 20:35:57

标签: c# unity3d

我有一个问题。当(Input.GetMouseButtonUp (0)Speedy脚本被禁用时,我们无法从脚本内部再次启用它,如下所示。我们怎么能解决这个问题呢?

public class  Speedy : MonoBehaviour {

GameObject car;

 if (speed == good)
    {
        GameObject car = GameObject.FindWithTag ("Car");

        if (Input.GetMouseButtonUp (0)) 
        {
            car.GetComponent<Speedy>().enabled = false;
        }

        else car.GetComponent<Speedy>().enabled = true;
    }
}

1 个答案:

答案 0 :(得分:1)

禁用时,脚本将不再运行,因此您无法再次从同一脚本启用它(当然您可以创建一个后台线程来保持它运行,这将是一个糟糕的解决方案)。

创建一个名为SpeedyEnabler的单独脚本,在鼠标单击时启用Speedy脚本并将其添加到GameObject。

或者,在isEnabled中声明一个字段Speedy,将this.enabled替换为isEnabled,并在isEnabledtrue时执行所需的操作。

如果您的脚本应该根据输入进行操作,那么无论如何启用和禁用脚本都不是一个好主意。相反,从输入控制器调用一个方法来执行...