自用常用工具 Unity,人物移动漫游

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

public class PlayerControl : MonoBehaviour
{
float m_speed = 10f;
[Header("移动速度")] public float NormalSpd = 10f;
public float HighSpd = 30f;
[Header("飞行速度")]
public float JumpSpeed;

#region 旋转用参数
float m_x;
float m_y;


#endregion
public void Update()
{
    #region 移动控制

    if (Input.GetKey(KeyCode.W) | Input.GetKey(KeyCode.UpArrow)) //前
    {
        this.transform.Translate(Vector3.forward * m_speed * Time.deltaTime);
    }

    if (Input.GetKey(KeyCode.S) | Input.GetKey(KeyCode.DownArrow)) //后
    {
        this.transform.Translate(Vector3.forward * -m_speed * Time.deltaTime);
    }

    if (Input.GetKey(KeyCode.A) | Input.GetKey(KeyCode.LeftArrow)) //左
    {
        this.transform.Translate(Vector3.right * -m_speed * Time.deltaTime);
    }

    if (Input.GetKey(KeyCode.D) | Input.GetKey(KeyCode.RightArrow)) //右
    {
        this.transform.Translate(Vector3.right * m_speed * Time.deltaTime);
    }

    if (Input.GetKey(KeyCode.Space))
    {
        transform.position += new Vector3(0, JumpSpeed, 0);
        GetComponent<Rigidbody>().drag = 10;
    }
    else GetComponent<Rigidbody>().drag = 0;
    if (Input.GetKey(KeyCode.LeftShift)||Input.GetKey(KeyCode.RightShift))
    {
        m_speed = HighSpd;
    }
    else
    {
        m_speed = NormalSpd;
    }

//拖动鼠标右键旋转
    if (Input.GetMouseButton(1))
    {
        m_y += Input.GetAxis("Mouse X");
        m_x -= Input.GetAxis("Mouse Y");
        this.transform.localEulerAngles = new Vector3(m_x, m_y, 0);
    }


    #endregion
    
}

}

猜你喜欢

转载自blog.csdn.net/qq_58804985/article/details/126385931