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

本文提供了一套Unity摄像机控制的代码实现,包括跟踪、转动和缩放功能,适用于第一和第三人称视角游戏。代码详细介绍了如何使用输入来调整摄像机的位置和角度,以及如何通过鼠标滚轮进行缩放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1.代码挂载到摄像机 camera上,
Player是你要跟踪物体的位置(把你要跟踪的物体放上就行)
camera截图
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<Transform>();
    c_Camera = GetComponent<Camera>();
}
void Start ()
{
//玩家与摄像机之间的偏移量
 offset = m_Player.position - transform.position;
}
//物理引擎相关的放到FixedUpdate中
void LateUpdate()
{
    transform.position = m_Player.position - offset;
    Camera_Roate();
    Camera_Scaling();
}
    /// <summary>
    /// 摄像机转动
    /// </summary>
   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);
            }

        }
    /// <summary>
   /// 摄像机缩放
    /// </summary>
   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;
           }

       }
   }
  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值