カメラを移動/移動させたい位置の配列があります。カメラの位置移動をトリガーする 2 つのボタン (ボタン A とボタン B) があります。ユーザーがボタン A を押すと、カメラは配列内の前の位置に移動します。ユーザーがボタン B を押すと、カメラは配列内の次の位置に移動します。ただし、新しい位置に移動する前に、カメラを中間位置に移動し、そこで数秒間停止してから移動する必要があります。現時点で私が持っているものの擬似コードは次のとおりです。
void Update()
{
if (buttonPress == a) {
positionToMoveTo = positions[currentPosition--];
}
if (buttonpress == b) {
positionToMoveTo = positions[currentPosition++];
}
}
void LateUpdate()
{
camera.lerp(intermediatePosition);
StartCoroutine(pause());
}
IEnumerator pause()
{
yield return new WaitForSeconds(3f);
camera.lerp(positionToMoveTo);
}
ただし、カメラの位置を切り替えるときに奇妙なジッターが発生し、中間位置が常に発生するとは限らないため、これは機能しません。私の問題は実行順序に関係していると思いますが、わかりません。どんな助けでも素晴らしいでしょう:)