C# 当我将球作为相机的父游戏对象时,相机会随球旋转。我该怎么办?
我用我的相机作为球的儿童游戏对象,所以当我移动球的时候,我的相机会和他一起移动。但问题是我使用的是C# 当我将球作为相机的父游戏对象时,相机会随球旋转。我该怎么办?,c#,unity3d,C#,Unity3d,我用我的相机作为球的儿童游戏对象,所以当我移动球的时候,我的相机会和他一起移动。但问题是我使用的是刚体.addForce(),所以当球旋转时,相机也随之旋转。 那么,我应该怎么做才能不旋转我的相机,而只是用我的球移动它呢 void FixedUpdate() { rigidbody.addForce(Input.getAxis("Horizontal"), 0, Input.getAxis("vertical")); } 有几种方法可以解决这个问题,我将列出一些 首先,如果你不在乎
刚体.addForce()
,所以当球旋转时,相机也随之旋转。
那么,我应该怎么做才能不旋转我的相机,而只是用我的球移动它呢
void FixedUpdate()
{
rigidbody.addForce(Input.getAxis("Horizontal"), 0, Input.getAxis("vertical"));
}
有几种方法可以解决这个问题,我将列出一些 首先,如果你不在乎球是否旋转,你可以禁用球的旋转。如果打开刚体组件中的“约束”区域,可以冻结旋转,使球不会旋转 或者,您可以编写一个脚本,使相机始终以某种方式定向。取决于您是否希望摄影机在任何平面上围绕球旋转,取决于您执行此操作的方式 第三种选择是最干净的,即不要让相机成为球的子对象。执行此操作的最小组件如下所示:
public class TargetFollow : MonoBehaviour
{
public Transform Target;
public float DistanceFromTarget;
void Update()
{
transform.position = Target.position + new Vector3(0, 0, DistanceFromTarget);
transform.LookAt(Target);
}
}
只需将球拖动到组件中的“目标”插槽中。请记住,这是超级裸体。您可能需要添加更多变量,以便更好地控制相机与球之间的方向,或者在“开始”方法中可以捕捉相机与球之间的方向和距离的快照。您如何使用
addForce()
?请发布你的代码我在我的球对象中使用这个脚本,主摄像机是子对象。Void FixedUpdate(){rigidbody.addForce(Input.getAxis(“水平”),0,Input.getAxis(“垂直”);}好吧,不要让你的相机成为球的孩子。最多写一个脚本,让你的相机跟踪一个特定的目标。那么…这个脚本会是???