Unity Camera 的跟踪,转动,缩放,代码教程 适合做角色的第一,第三人称视角

Unity Camera跟踪,转动,缩放,代码教程
适合做角色的第一,第三人称视角

1.代码挂载到摄像机 camera上,
Player是你要跟踪物体的位置(把你要跟踪的物体放上就行)
Unity Camera 的跟踪,转动,缩放,代码教程 适合做角色的第一,第三人称视角_第1张图片
2.源代码

using UnityEngine;
using System.Collections;

public class Camera_Move : MonoBehaviour
{
//摄像头跟踪
public Transform m_Player;
Vector3 offset;
//摄像头转动
public float speed_Hor = 9f;
public float speed_Vert = 9f;
private float rotationX = 0;

//摄像头缩放

private Camera c_Camera;

void Awake ()
{
//通过tag找到人物组件
m_Player =m_Player.GetComponent();
c_Camera = GetComponent();
}
void Start ()
{
//玩家与摄像机之间的偏移量
offset = m_Player.position - transform.position;
}
//物理引擎相关的放到FixedUpdate中
void LateUpdate()
{
transform.position = m_Player.position - offset;
Camera_Roate();
Camera_Scaling();
}
///
/// 摄像机转动
///
public void Camera_Roate()
{
if (Input.GetMouseButton(0))
{

        rotationX -= Input.GetAxis("Mouse Y") * speed_Vert;
        //旋转限制范围
            rotationX = Mathf.Clamp(rotationX, -50, 50);
            float delta = Input.GetAxis("Mouse X") * speed_Hor;
            float rotationY = transform.localEulerAngles.y + delta;
           //旋转限制范围
        rotationY = Mathf.Clamp(rotationY, -360, 360);
        this.transform.eulerAngles = new Vector3(rotationX, rotationY, 0);
        }

    }
/// 

/// 摄像机缩放
///
public void Camera_Scaling()
{
if (Input.GetAxis(“Mouse ScrollWheel”) < 0)
{
if (Camera.main.fieldOfView <= 70) //小于一个放大范围后就不继续放大了
{
Camera.main.fieldOfView += 5;
}
}
if (Input.GetAxis(“Mouse ScrollWheel”) > 0)
{
if (Camera.main.fieldOfView >= 30) //小于一个放大范围后就不继续放大了
{
Camera.main.fieldOfView -= 5;
}

   }

}

}

3.图片教程
Unity Camera 的跟踪,转动,缩放,代码教程 适合做角色的第一,第三人称视角_第2张图片

你可能感兴趣的:(UnityHub,笔记,unity3d,游戏开发,程序设计)