要获得用于相机控制的Lerp的位置,您只需要弄清楚相机推动的方向并将其添加到玩家的位置。
一种选择是使用transform.forward来使用玩家面对的方向,但这需要您旋转玩家角色。
//Assign the player's transform here
public Transform Target;
Vector3 GetNudgeDirection() {
return Target.forward;
}
另一种方法是获得鼠标相对于玩家的方向。
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会这样做的,因此现在没有相机脚本。我想这只需要几行就可以找到正确的矢量lerp? – rajul614
您可以尝试隐形团结项目中的摄影机脚本。我之前使用它们,我认为它按照你想要的方式工作。看一看。 http://answers.unity3d.com/questions/691973/stealth-project-tutorial-camera-movement.html –