Unity-用键盘控制目标移动,用鼠标控制目标旋转

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move : MonoBehaviour
{
    /// <summary>
    /// 用户按下WASD键可以控制目标前后左右移动
    /// 用户滑动鼠标可以控制目标上下左右旋转
    /// </summary>
    
    public float MoveSpeed = 10f;// 定义一个可以在外部更改的移动速度参数
    public float RotateSpeed = 100f;// 定义一个可以在外部更改的旋转速度参数

    float RotationY;
    float RotationX;
  
    // Update is called once per frame
    void Update()
    {
        float MoveLR = Input.GetAxis("Horizontal");//用户按下AD键返回一个(-1,1)的值控制目标左右移动
        float MoveFB = Input.GetAxis("Vertical");//用户按下WS键返回一个(-1,1)的值控制目标前后移动
        this.transform.Translate(new Vector3(MoveLR * 1, 0, MoveFB * 1) * MoveSpeed * Time.deltaTime, Space.Self);

        float RotateY = Input.GetAxis("Mouse X");
        float RotateX = Input.GetAxis("Mouse Y");
        RotationY += RotateY * RotateSpeed * Time.deltaTime;//用来累积存储用户每次水平移动鼠标得出的值乘以速度
        RotationX += RotateX * RotateSpeed * Time.deltaTime;//用来累积存储用户每次垂直移动鼠标得出的值乘以速度
        this.transform.rotation = Quaternion.Euler(RotationX, RotationY, 0);

        LimitRotate();
    }
    //用户垂直移动鼠标时,限制角色上下旋转的最大角度和单次旋转角度
    void LimitRotate()
    {
        RotationX = Mathf.Clamp(RotationX, -30f, 30f);
    }

    //限制鼠标上下旋转角度2
    //void LimitRotate()
    //{
    //    if (RotationX > 360)
    //    {
    //        RotationX -= 360;
    //    }
    //    if (RotationX < 360)
    //    {
    //        RotationX += 360;
    //    }
    //}

  
}//end class

多行代码转注释快捷键:[CTRL+K]+[CTRL+C]
多行注释转代码快捷键:[CTRL+K]+[CTRL+U]
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值