所以我的“场景”中有一个小传感器,当它被阻塞时,我希望我的程序等待 4 秒,如果传感器仍然被阻塞,我希望它提醒用户。
如果传感器仍然被阻塞,该脚本可以正常工作。
但是,如果您阻塞传感器的时间少于 4 秒,然后从传感器中取出部件(这将导致没有警报,因为传感器不再被阻塞),即使条件不再为真,警报仍会运行。
任何朋友都可以看到我在这里做错了什么吗?
该OnBlocked()
函数在传感器被阻塞时OnCleared()
运行,该函数在传感器被清除时运行。
该OnisBlockedUpdated()
函数在 isBlocked 属性更新时运行。
function OnBlocked( sender : Demo3D.Visuals.PhysicsObject, load : Demo3D.Visuals.Visual )
{
sender.isBlocked = true;
sender.PropertiesUpdated();
}
function OnCleared( sender : Demo3D.Visuals.PhysicsObject, load : Demo3D.Visuals.Visual )
{
sender.isBlocked = false;
sender.PropertiesUpdated();
}
function OnisBlockedUpdated( sender : Demo3D.Visuals.BoxVisual, value : System.Boolean, oldValue )
{
var blockingObj : Demo3D.Visuals.BoxVisual = sender.BlockingLoad;
if (value)
{
print("isBlocked");
wait(4);
sender.PropertiesUpdated();
if(value)
{
alert("The object '" + blockingObj + "' is too tall for this bay.");
}
else
{
return;
}
}
if(!value)
{
print("cleared");
return;
}
}