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中赋值
很简单 按鼠标的左右键即可根据距离