我正在学习 Unity3D,现在正在创建一个简单的(无用的)游戏,如下所示。
球从倾斜的地板上滚下,相机必须跟随球,具有以下关系
x
相机=x
球
y
相机 =y
球 + 3
z
相机 = z
- 10
有两种可能的方式来控制相机位置。
在这种情况下,我将以下脚本附加到球上。
public class Ball : MonoBehaviour
{
[SerializeField]
private Transform cameraTransform;
void Start() { }
void Update()
{
Vector3 newCameraPos = new Vector3
{
x = transform.position.x,
y = transform.position.y + 3f,
z = transform.position.z - 10f
};
cameraTransform.position = newCameraPos;
}
}
相机自己控制
在这种情况下,我将以下脚本附加到相机。
public class Camera : MonoBehaviour
{
[SerializeField]
private Transform ballTransform;
void Start() { }
void Update()
{
Vector3 newCameraPos = new Vector3
{
x = ballTransform.position.x,
y = ballTransform.position.y + 3f,
z = ballTransform.position.z - 10f
};
this.transform.position = newCameraPos;
}
}
问题
尽管这两种方法都按预期工作,但我想知道每种方法是否有优缺点。我应该使用哪一个?
梵蒂冈之花
相关分类