Unity实现键鼠控制立方体移动旋转

创建立方体,编写脚本实现使用键盘控制 立方体的移动、旋转,鼠标控制立方体旋转

1. 新建一个场景

2. 新建几何体

新建一个平面用于参考。

新建一个立方体

3. 创建脚本

创建脚本方法1:

直接在资源中创建:

       从菜单栏创建

       从项目视图的资源文件夹中创建

       创建成功

创建方法2

       在检查器中创建

       在检查器中新建一个脚本并命名,这样脚本直接就挂载在立方体对象上了。

       创建成功,可以在资源文件夹中看到

4. 查看脚本

单击资源文件夹中的脚本,即可在检查器中查看脚本

5. 编写脚本

为cs文件设置默认打开方式(我使用的sublime text),然后在资源文件夹中双击脚本即可在编辑器中打开

编辑脚本实现功能:

从物体角度,通过键盘按键 WSAD 前后左右移动立方体cube

从物体角度,通过键盘按键 QE 上、左 旋转立方体cube

从摄像机角度,通过鼠标左键 旋转立方体

运行效果:

原本:

移动、旋转之后:

6. 源码

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

public class move : MonoBehaviour
{
    Vector3 mPrevPos = Vector3.zero;
    Vector3 mPosDelta = Vector3.zero;

    void Start()
    {
    }

    private void Update()
    {
        float ws = Input.GetAxis("Vertical");  //按‘W’'S'键返回一个[-1,1]的值
        float ad = Input.GetAxis("Horizontal");  //按‘A’'D'键返回一个[-1,1]的值
        this.transform.Translate(Vector3.forward * ws * Time.deltaTime * 7,Space.Self);  //前后移动
        transform.Translate(Vector3.left * ad * Time.deltaTime * 7,Space.Self);  //左右移动

        if(Input.GetKey(KeyCode.Q))  //按下Q
        {
            transform.Rotate(Vector3.up,1.0f,Space.Self);  //前后旋转
        }
        if(Input.GetKey(KeyCode.E))  //按下E
        {
            transform.Rotate(Vector3.left,1.0f,Space.Self);  //左右旋转
        }

        if (Input.GetMouseButton(0))  //按下鼠标左键
        {
            mPosDelta = Input.mousePosition - mPrevPos;
            transform.Rotate(Camera.main.transform.up, -mPosDelta.x, Space.World);
            transform.Rotate(Camera.main.transform.right, mPosDelta.y, Space.World);  
            //在指定坐标系(参数3,世界坐标系)中,对象绕指定向量(参数1),旋转指定角度(参数2)
            //transform.up 在世界坐标系中的上方向。要搭配使用Space.Word
            //此方法解决了摄像机反向拍摄场景时,旋转坐标系不合理的问题
        }
        mPrevPos = Input.mousePosition;
    }
}

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假以时日♪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值