我在 Unity3D 中有一个自上而下的游戏,玩家可以控制汽车。目前,相机将汽车停在屏幕中间,并旋转到汽车指向的方向。
那是我的方法:
public class CameraFollowController : MonoBehaviour
{
private void FixedUpdate()
{
transform.rotation = Quaternion.Euler(90, car.rotation.eulerAngles.y + 90, 90);
transform.position = new Vector3(car.position.x, cameraHeight, car.position.z);
}
public Transform car;
public float cameraHeight = 10;
}
我想移动摄像头的位置,因此汽车始终位于屏幕底部:
该怎么做?
答案 0 :(得分:2)
如果汽车在x / y轴上移动,则可以使用transform.forward
获取汽车所面对的方向,然后对其进行调整。
public float distance; // How much you want to offset
// Get the direction of the car
Vector3 dir = car.transform.forward;
// Offset the position
transform.position += -dir * distance;
答案 1 :(得分:0)
您似乎要在Z轴上偏移相机的位置。
您需要做的是找出汽车在屏幕底部的位置偏移量,并将其作为Z轴偏移量应用于FixedUpdate()
循环中。
transform.position = new Vector3(car.position.x, cameraHeight, car.position.z *-/+* zCamOffset);
一种很简单且粗略的方法来确定偏移量是在游戏模式下移动汽车GameObject,使其位于游戏窗口底部的位置。然后使用汽车GameObject的transform组件在Z轴上的值作为粗偏移。
祝你好运!