Каждый раз, когда я запускаю этот раздел кода и нажимаю клавишу «d», Unity выйдет из строя. Это заставляет меня думать, что есть логическая ошибка, но я понятия не имею, что происходит не так.Unityscript - как наилучшим образом установить 5-секундную задержку на действие, которое занимает 5 секунд.
private var delayAmount = 5.0;
private var timeDelay = 0.0;
private var abilityEnd = 0.0;
public var abilityDuration = 5.0;
public var speed = 2.0;
function Update()
{
if (Input.GetKey ("d") && Time.time > timeDelay)
{
abilityEnd = Time.time + abilityDuration;
while(abilityEnd > Time.time)
{
transform.Translate(0, 0, Time.deltaTime * speed);
}
timeDelay = Time.time + delayAmount;
}
}
Что вы здесь делаете? –
действительно не понимают, что вы пытаетесь сделать здесь, но в целом лучший способ добавить задержку - использовать сопрограммы и выход. Вы можете посмотреть здесь: https://docs.unity3d.com/ScriptReference/MonoBehaviour.StartCoroutine.html – adityasinghraghav