Unity WSAD控制前后移动、左右旋转

本文详细解析了一个Unity脚本,用于控制3D和2D物体的移动及旋转。脚本利用`FixedUpdate`确保稳定更新,通过`Input.GetAxis`获取用户输入,结合`Vector3`向量实现物体沿Z轴或Y轴的移动,并通过`transform.Translate`和`transform.Rotate`调整物体位置和角度。在3D环境中,物体向前移动,左右旋转;在2D环境中,以Y轴为前进方向,进行旋转。

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

说明

将脚本挂载至物体上即可使用

该脚本用于控制物体的前后移动、左右旋转

3D 

以z轴为前进方向

using UnityEngine;

public class PlayerControl : MonoBehaviour
{
    //速度:每秒移动5个单位长度
    public float moveSpeed = 5;
    //角速度:每秒旋转135度
    public float angularSpeed = 135;

    void FixedUpdate()
    {
        Move();
    }

    void Move()
    {
        //获取竖直、水平轴的值,范围在-1到1
        float v = Input.GetAxis("Vertical");
        float h = Input.GetAxis("Horizontal");

        //按照矢量移动一段距离
        transform.Translate(Vector3.forward * v * Time.deltaTime * moveSpeed);
        //按照矢量进行一次旋转
        //这将改变transform组件中旋转字段的y值,y值控制以y为旋转轴,从z轴出发的旋转的角度
        transform.Rotate(Vector3.up * h * Time.deltaTime * angularSpeed);
    }
}

解析

1. FixUpdate

控制函数在FixUpdate里执行,每0.02s秒执行一次,1秒执行50次

2. 按键控制

获取垂直轴的值

Input.GetAxis("Vertical");

获取水平轴的值

Input.GetAxis("Horizontal");

范围均为-1~1,按下WS、AD键可以分别改变垂直轴、水平轴的值

3. 向量

Vector3.forward是(0,0,1)

Vector3.up是(0,1,0)

4.transform组件及其函数

transform.Translate 按照所给矢量移动一段距离

transform.Rotate 按照矢量进行一次旋转

这将改变transform组件中旋转字段的y值,y值控制以y为旋转轴,从z轴出发的旋转的角度

2D 

以y轴为前进方向

using UnityEngine;

public class PlayerControl : MonoBehaviour
{
    //速度:每秒移动5个单位长度
    public float moveSpeed = 5;
    //角速度:每秒旋转135度
    public float angularSpeed = 135;

    void FixedUpdate()
    {
        Move();
    }

    void Move()
    {
        //获取竖直、水平轴的值,范围在-1到1
        float v = Input.GetAxis("Vertical");
        float h = Input.GetAxis("Horizontal");

        //按照矢量移动一段距离
        transform.Translate(Vector2.up * v * Time.deltaTime * moveSpeed);
        //按照矢量进行一次旋转
        //这将改变transform组件中旋转字段的z值,z值控制以z为旋转轴,从x轴出发的逆时针旋转的角度
        transform.Rotate(Vector3.forward * h * Time.deltaTime * angularSpeed);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值