我正在制作2D太空游戏,类似于Roid Rage。我有一个航天飞机。班车将自由移动,避开障碍物。我成功地完成了梭子的运动和旋转部分(使用rigidbody2d)。但现在我无法让相机跟随梭子。 首先,我试着让相机成为穿梭机的孩子。通过这种方式,摄像机跟随了航天飞机。但它没有显示任何旋转的旋转,因为我猜相机也会在这种情况下随梭子旋转。 然后我这样做了:
public Transform shuttle;
private Vector3 offset;
void Start() {
offset = transform.position;
}
void LateUpdate() {
transform.position = shuttle.transform.position + offset;
}
在这种情况下,摄像机跟随航天飞机,但是当我点击屏幕并且航天飞机应该转弯时(在路径轨道上),它只是围绕自己的轴旋转。
最后,我改用了它:
void LateUpdate() {
transform.position = Vector3.Lerp(transform.position, shuttle.position + offset, 0.125f);
}
现在,结果是航天飞机非常不稳定。解决这个问题的方法是什么?
答案 0 :(得分:0)
像这样非常简单的事情不起作用吗?这是在相机脚本中,没有附加到GameObject。
public GameObject MyShuttle;
void LateUpdate() {
this.transform.position = MyShuttle.transform.position;
}
答案 1 :(得分:0)
在论坛上搜索后找到解决方案。由于我使用Rigidbody2D来移动梭子,我不得不将其Interpolate属性从None打开到Interpolate。振动由此确定。