我有一个问题。当(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;
}
}
答案 0 :(得分:1)
禁用时,脚本将不再运行,因此您无法再次从同一脚本启用它(当然您可以创建一个后台线程来保持它运行,这将是一个糟糕的解决方案)。
创建一个名为SpeedyEnabler
的单独脚本,在鼠标单击时启用Speedy
脚本并将其添加到GameObject。
或者,在isEnabled
中声明一个字段Speedy
,将this.enabled
替换为isEnabled
,并在isEnabled
为true
时执行所需的操作。
如果您的脚本应该根据输入进行操作,那么无论如何启用和禁用脚本都不是一个好主意。相反,从输入控制器调用一个方法来执行...