カメラコントロールのLerpで使用する位置を取得するには、カメラの移動方向を把握して、プレーヤーの位置に追加するだけです。
1つの選択肢は、transform.forwardを使用して、プレイヤーが向いている方向を使用することですが、これにはプレイヤーキャラクターを回転させる必要があります。
//Assign the player's transform here
public Transform Target;
Vector3 GetNudgeDirection() {
return Target.forward;
}
もう1つの方法は、プレイヤーに対してマウスの方向を取得することです。
public Transform Target;
Vector3 GetNudgeDirection() {
//Get the position of the mouse
Vector3 mousePos = Input.mousePosition;
mousePos.z = -Camera.main.transform.position.z;
Vector2 inputPos = Camera.main.ScreenToWorldPoint(mousePos);
//returns direction from the player to the mouse pos.
return (inputPos - (Vector2)Target.position).normalized;
}
次に、ターゲットの位置にナッジの方向を追加して、カメラの目標位置を取得します。
//This field determines how far to nudge
private float nudgeDistance = 2f;
Vector3 GetTargetPosition() {
return Target.position + (GetNudgeDirection() * nudgeDistance);
}
ターゲットの位置は、カメラを移動する場所ではなく、見た目の場所です。したがって、カメラを実際に動かしているときは、目標位置にオフセットを加えて距離を維持してください。
ようこそstackoverflow。私はあなたがここで質問をする最善の方法をチェックすべきだと思います。あなたと誰もがここでもっと簡単になるでしょう。あなたのお手伝いをして、詳細を提供する必要があります。例:カメラスクリプト。 –
ごめんなさい。これはcameraScriptが行うすべてのことで、今はカメラスクリプトがありません。私は、右のベクトルを見つけ出すのには数行しかかからないと思いますか? – rajul614
ステルス・ユニティ・プロジェクトからカメラ・スクリプトを試すことができます。私は前にそれらを使用し、私はそれがあなたが望むように彼らが動作すると思います。見てみましょう。 http://answers.unity3d.com/questions/691973/stealth-project-tutorial-camera-movement.html –