unity中相机的移动(游戏中视角的变化)

Unity在游戏开发中视角移动是很重要
比如在侠盗猎车-罪恶都市中的Tab键可以切换到后方视角
在这里我将介绍两个方法
一个是快速(无过程)的切换视角
一个是有过程的切换视角

1无过程切换视角

首先我们在unity中创建两个空物体 改变其位置,稍微远一点(以观察)
然后我们也可以改变两个空物体的旋转 毕竟视角也是要到达我们想要的方向
然后就是给我们的相机添加脚本了这里直接给出代码

public Transform ForntPosition;
public Transform AfterPosition;
private void Start()//初始化位置方向
    {
        transform.position = ForntPosition.position;
        transform.forward = ForntPosition.forward;
    }
    private void Update()
    {
        if(Input.GetKey (KeyCode.A))
        {
            transform.position = ForntPosition.position;
            transform.forward = ForntPosition.forward;
        }
        if(Input.GetKey (KeyCode.S))
        {
            transform.position = AfterPosition .position;
            transform.forward = AfterPosition.forward;
        }
    }

这几句代码比价简单 稍微有些基础就可以看懂
在unity中赋值
把它挂在相机上即可按a和s切花视角(包括位置和方向)

2.具有过程的视角切换

首先还是上边的准备工作
然后这里需要偶一个Vector3.Lerp的函数 大家如果不懂可以查阅(比较简单)
给出代码

public Transform ForntPosition;
public Transform AfterPosition;
private void Start()//初始化位置方向
    {
        transform.position = ForntPosition.position;
        transform.forward = ForntPosition.forward;
    }
    private void Update()
    {
        if (Input.GetButton("Fire1"))
        {
            SetForntPosition();
        }
        if(Input.GetButton("Fire2"))
        {
            SetAfterPosition();
        }
    }
    private void SetForntPosition()//改变至位置1
    {
        transform.position = Vector3.Lerp(transform.position, ForntPosition.position, Time.fixedDeltaTime * Smooth);
        transform.forward = Vector3.Lerp(transform.forward, ForntPosition .forward, Time.fixedDeltaTime * Smooth);
    }
    private void SetAfterPosition()//改变至位置2
    {
        transform.position = Vector3.Lerp(transform.position, AfterPosition.position, Time.fixedDeltaTime * Smooth);
        transform.forward = Vector3.Lerp(transform.forward, AfterPosition.forward, Time.fixedDeltaTime * Smooth);
    }

在unity中赋值
很简单 按鼠标的左右键即可根据距离

你可能感兴趣的:(unity)