Unity3d自上而下的摄像头控件

时间:2019-03-08 02:04:26

标签: c# unity3d rotation

我在 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;
}

我想移动摄像头的位置,因此汽车始终位于屏幕底部:

enter image description here

该怎么做?

2 个答案:

答案 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轴上的值作为粗偏移。

祝你好运!