Unity实现Camera跟随的方法
前言
在实际的开发项目中,我们经常会碰到Camera跟随功能的需求,比如第一人称设计类游戏,小地图的制作等等。我就碰到过好几种这样的这样的需求,在这里总结一下,大致有两种方法:
方法一
第一种方法就是将Camera设置成为跟随物体的子物体。这种方法的好处是简单粗暴,便于操作。缺点就是效果不是太好,视野会随着镜头转动,感觉天旋地转的。操作方法如所示:
1、将Camera拖拽到摄像机跟随的物体上,如下图所示:
2、将Camera的视野纹理投射到一个RenderTexture上,然后将此纹理挂载到UI上,效果如图所示:
3.可以明显看出Camera随着跟随物体会转动,效果非常不好,此时就需要另一种方法了。
方法二
第二种方法就是写代码使Camera跟随物体移动就可以了,这种方法效果较好,具体步骤如下所示:
1.编写Camera跟随脚本,代码如下所示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MapCameraControl : MonoBehaviour
{
#region 参数
//跟随的物体
public Transform followObject;
//跟随的三位数
Vector3 vector;
#endregion
#region 常规方法
// Use this for initialization
void Start ()
{
vector = this.transform.position - followObject.position;
}
private void LateUpdate()
{
ToFollow();
}
#endregion
#region 私有方法
void ToFollow()
{
this.transform.position = followObject.position + vector;
}
#endregion
}
2.代码很简单,将此脚本拖拽到场景中的Camera中,将跟随的物体拖拽到脚本中,如下图所示:
3.运行工程,效果如下图所示:
4.可以看到,Camera已经不随着物体转动了,效果很好。