我正在为一个正在研究的游戏建立一个检查系统,并且可以按预期运行,尽管部分脚本仅适用于一个gameObject。当保持的布尔值为true时,我希望关闭播放器的控件,并在错误的情况下重新打开它。问题是,它始终是错误的,因此当我尝试拾取另一个对象时,它不会停止玩家的控制。
我认为这是因为它在Update函数中运行。我试着将它们放入自己的函数中,并在布尔值是对/否时调用这些函数,但得到的结果相同。
在此之前,我还编写了另一个脚本来打开/关闭播放器的控件,但这是通过两个鼠标输入完成的,并且按预期工作。
我有一个处理光线投射交互的脚本,它将打开/关闭保持的布尔值。当光线投射处于触摸状态时,对象的脚本被激活,如果未触摸则变为null。对象的脚本是这样的。
void Update()
{
if (held == true)
{
thisObject.transform.position = holdPos.position;
//transform.rotation = holdPos.rotation;
lockLook.Control.Toggle = false;
movelock.Control.Toggle = false;
}
else
{
thisObject.transform.position = startPos;
thisObject.transform.rotation = startRot;
lockLook.Control.Toggle = true;
movelock.Control.Toggle = true;
}
}
我假设我需要找到一种只调用一次假布尔值的方法。