Unity实现Camera跟随的方法

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已经不随着物体转动了,效果很好。

经验分享 程序员 微信小程序 职场和发展