美文网首页
Camera相机自动跟随,旋转调整

Camera相机自动跟随,旋转调整

作者: 至少还有光 | 来源:发表于2019-12-19 18:50 被阅读0次

Camera相机prefab结构        

每一个层级物体对于摄像机的影响作用

下面是源码

[SerializeField]

    private Transform CameraUpAndDown;

    [SerializeField]

    private Transform CameraZoomContainer;

    [SerializeField]

    private Transform CameraContainer;

    public static CameraCtrl _Instance;

    // Start is called before the first frame update

    void Awake()

    {

        _Instance = this;

        CameraUpAndDown = transform.Find("CameraUpAndDown").transform;

        CameraZoomContainer = UnityHelp.FindtheChildNode(this.gameObject, "CameraZoomContainer");

        CameraContainer = UnityHelp.FindtheChildNode(this.gameObject, "CameraContainer");

    }

    public void Init()

    {

        CameraUpAndDown.localEulerAngles = new Vector3(Mathf.Clamp(CameraUpAndDown.localEulerAngles.z, 30f, 80f), 0, 0);

    }

    public void SetCameraRotate(int type)

    {

        transform.Rotate(0, 50 * Time.deltaTime * (type == 0 ? -1 : 1), 0);

    }

    public void SetCameraUpAndDown(int type)

    {

        CameraUpAndDown.Rotate(80 * Time.deltaTime * (type == 0 ? -1 : 1), 0, 0);

        CameraUpAndDown.localEulerAngles = new Vector3(Mathf.Clamp(CameraUpAndDown.localEulerAngles.x, 3f, 80f), 0, 0);

    }

    public void SetCameraZoom(int type)

    {

        CameraContainer.Translate(Vector3.forward * 10 * Time.deltaTime * (type == 0 ? -1 : 1));

        CameraContainer.localPosition = new Vector3(0, 0, Mathf.Clamp(CameraContainer.localPosition.z, -20f, -2f));

    }

    public void AutoLookAt(Vector3 pos)

    {

        CameraZoomContainer.LookAt(pos);

    }

相关文章

网友评论

      本文标题:Camera相机自动跟随,旋转调整

      本文链接:https://www.haomeiwen.com/subject/ijnmnctx.html