Итак, у меня есть маленький датчик в моей «сцене», и когда он блокируется, я хочу, чтобы моя программа ждала 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;
}
}