1.第一种方法
摄像机视角锁死方法,具体做法就是事先调试好视角,然后聚焦,然后用代码事先固定视角,其代码如下:
/ 挂载对象:主相机
// 功能:相机跟随人物
// 注意:相机只能跟随人物移动,但是如果人物转向或者做某些动作,摄像机并不跟随
using UnityEngine;
using System.Collections;
public class CameraShareScript : MonoBehaviour
{
//摄像机于要跟随物体的距离
Vector3 Dir;
//要跟随的物体
public GameObject m_Player;
// Use this for initialization
void Start ()
{
//获取到摄像机于要跟随物体之间的距离
Dir = m_Player.transform.position - transform.position;
}
// Update is called once per frame
void LateUpdate ()
{
//摄像机的位置
transform.position = m_Player.transform.position - Dir;
}
}
// 功能:相机跟随人物
// 注意:相机只能跟随人物移动,但是如果人物转向或者做某些动作,摄像机并不跟随
using UnityEngine;
using System.Collections;
public class CameraShareScript : MonoBehaviour
{
//摄像机于要跟随物体的距离
Vector3 Dir;
//要跟随的物体
public GameObject m_Player;
// Use this for initialization
void Start ()
{
//获取到摄像机于要跟随物体之间的距离
Dir = m_Player.transform.position - transform.position;
}
// Update is called once per frame
void LateUpdate ()
{
//摄像机的位置
transform.position = m_Player.transform.position - Dir;
}
}
优点:代码简单,但是不能跟随人物旋转,运动。
2.第二种方法:
这种方法是上种方法的优化,可以实现跟随人物移动,跟随人物旋转等基本功能,但是缺点是如果添加刚体组件,摄像机无法穿墙跟随人物,其代码如下:
// 挂载对象:主相机
// 功能:把要跟随的人物Tag修改为Player
// 注意:
using UnityEngine;
using System.Collections;
public class CameraFindPlayerScript : MonoBehaviour
{
//相机距离人物高度
float m_Height = 5f;
//相机距离人物距离
float m_Distance = 5f;
//相机跟随速度
float m_Speed = 4f;
//目标位置
<
// 功能:把要跟随的人物Tag修改为Player
// 注意:
using UnityEngine;
using System.Collections;
public class CameraFindPlayerScript : MonoBehaviour
{
//相机距离人物高度
float m_Height = 5f;
//相机距离人物距离
float m_Distance = 5f;
//相机跟随速度
float m_Speed = 4f;
//目标位置
<