unity 角色第三视角移动

在以前的仿真项目中用到了第三人称视角的移动,W、S、A、D控制角色的前后左右移动,摄像机跟随角色移动,并且摄像机做了缓冲处理。鼠标右键长按旋转控制镜头旋转,中键滑轮控制镜头拉进拉远。分为两个脚本,CharacterThirdControl挂在角色身上,CameraThirdControl挂在跟随摄像机身上。角色的标签设置为Player。跟随摄像机为主摄像机(可以根据自己需求改变)。下面直接贴代码,代码中已有注释:

1,CharacterThirdControl.cs

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(CharacterController))]
public class CharacterThirdControl: MonoBehaviour {

    Transform myCamera;  //跟随摄像机
    private CharacterController cc;
    Vector3 playerDirect;         //角色的目标方向
    Vector3 correctDirect;       //为了矫正计算方向向量的误差
    float perError = 0.2f;       //误差与摄像机缓冲存在关系
    float speed = 0.1f;            //速度与Update的帧数有关,同样数据帧数越多,速度越快
    Vector3 front;  //前
    Vector3 back;  //后
    Vector3 left;    //左
    Vector3 right; //右
    // Use this for initialization
    void Start()
    {
        myCamera = Camera.main.transform;  //将主摄像机设置为跟随摄像机
        front = Vector3.zero;
        back = Vector3.zero;
        left = Vector3.zero;
        right = Vector3.zero;
        correctDirect = Vector3.zero;
        cc = transform.GetComponent<CharacterController>();
    }

    void LateUpdate()
    {
        PlayerControl();
    }

    /// <summary>
    /// 计算方向向量函数
    /// </summary>
    private void CalculateDirection()
    {
        Vector3 temp = transform.position - myCamera.position;
        temp = n

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值