0

カメラを移動/移動させたい位置の配列があります。カメラの位置移動をトリガーする 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);
    }

ただし、カメラの位置を切り替えるときに奇妙なジッターが発生し、中間位置が常に発生するとは限らないため、これは機能しません。私の問題は実行順序に関係していると思いますが、わかりません。どんな助けでも素晴らしいでしょう:)

4

1 に答える 1