Я собираю систему экзаменов для игры, над которой я работаю, и она работает так, как задумано, хотя часть сценария будет работать только для одного игрового объекта.Когда удерживаемое логическое значение истинно, я хочу, чтобы управление проигрывателем было отключено и включало его, когда оно ложно.Проблема в том, что это всегда ложь, поэтому, когда я пытаюсь подобрать другой объект, это не остановит контроль игрока.
Я предполагаю, что это потому, что он работает в функции обновления.Я пытался поместить их в их собственные функции и вызывать их, когда bool имеет значение true / false, но я получаю тот же результат.
Я также написал другой скрипт, который включал / выключал управление плеером, ноэто было сделано с помощью двух отдельных входов мыши, и это сработало, как и ожидалось.
У меня есть скрипт, который обрабатывает взаимодействия raycast и включает / выключает удерживаемое логическое значение.Пока лучевая трансляция касается, сценарий объекта активируется и обнуляется, если он не касается.Сценарий объекта выглядит следующим образом ..
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;
}
}
Я предполагаю, что мне нужно найти способ вызвать ложное логическое значение только один раз.