このセクションのコードを実行し、「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