Unity3D实现键盘鼠标控制角色移动及旋转

2025-10-26 21:32:08

1、打开Unity3D,新建项目,如图,项目名称先填写为“PlayerControl”,然后点“CreateProject”按钮。

Unity3D实现键盘鼠标控制角色移动及旋转

2、在项目(Project)面板中的Assets下面分别建立“Materials"、"Prefabs"和"Scripts”文件夹。

Unity3D实现键盘鼠标控制角色移动及旋转

3、在层级(Hierarchy)面板中,点鼠标右键,在弹出菜单中选“3D Object”-->"Plane"(地面),然后点检视(Inspector)面板中的Transform组件设置按钮,在弹出的菜单中选“Reset”,将添加的地面复位。可以看到在Inspector面板中的Transform组件里,Position(位置)属性X,Y,Z都是0。

下面进行关键的一步,按住ATL键,鼠标移到"Scene"面板中(这时鼠标变成眼睛形状),拖动鼠标,可以移动场景中的视角,注意:一定要将视角移动成如图所示的X轴在右方,Z轴在前方,Y轴在上方。这步很关键,移成这样的方位,后面移动物体时,前后左右才会正常,不然你的方向可能会和别人相反。

Unity3D实现键盘鼠标控制角色移动及旋转

Unity3D实现键盘鼠标控制角色移动及旋转

Unity3D实现键盘鼠标控制角色移动及旋转

4、调整好Scene面板中的视角后,选中层级(Hierarchy)面板中的"Main Camera",点菜单"GameObject"-->"Align With View",将主摄像机位置调整到Scene面板中所看到的视角。

Unity3D实现键盘鼠标控制角色移动及旋转

5、与上一步相同,在层级(Hierarchy)面板中,点鼠标右键,在弹出菜单中选“3D Object”-->"Cube"(立方体),然后点检视(Inspector)面板中的Transform组件设置按钮,在弹出的菜单中选“Reset”,然后将Transform组件里,Position(位置)的Y值改成0.5,X和Z均为0。

Unity3D实现键盘鼠标控制角色移动及旋转

6、选中Project(项目)面板中的Assets下的"Materials"文件夹,在右边空白处,右击鼠标,选"Create"-->"Material",将新建的材质球默认名称"New Material"改名为"Cube",并在右边"Inspector"(检视)面板中,设置颜色为蓝色。将材质球"Cube"拖到Scene面板中的立方体"Cube"上面,这时,场景中的立体方Cube变成蓝色,如图所示。

Unity3D实现键盘鼠标控制角色移动及旋转

Unity3D实现键盘鼠标控制角色移动及旋转

1、点击项目(Project)面板中的"Prefabs"文件夹,将层级(Hierarchy)面板中的Cube立方体,拖动到项目(Project)面板中的"Prefabs"文件夹中,这时Cube立方体则变成了预制体。

Unity3D实现键盘鼠标控制角色移动及旋转

2、点击项目(Project)面板中的"Script"文件夹,在右边空白处点鼠标右键,选"Create"-->"C# Script",将新创建的C#代码重命名为"PlayerController",并将该代码拖拽到层级(Hierarchy)面板中的Cube物体上。然后双击打开该代码。

Unity3D实现键盘鼠标控制角色移动及旋转

Unity3D实现键盘鼠标控制角色移动及旋转

3、在代码编辑器MomoDevelop或VS2015中,将以下代码输入,然后按CTRL+S保存代码。

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class PlayerController : MonoBehaviour {

    private Transform m_Transform;

void Start () {

        m_Transform = gameObject.GetComponent<Transform>();

}

// Update is called once per frame

void Update () {

        MoveControl();

}

    void MoveControl()

    {

        if (Input.GetKey(KeyCode.W))

        {

            m_Transform.Translate(Vector3.forward * 0.1f, Space.Self);

        }

        if (Input.GetKey(KeyCode.S))

        {

            m_Transform.Translate(Vector3.back * 0.1f, Space.Self);

        }

        if (Input.GetKey(KeyCode.A))

        {

            m_Transform.Translate(Vector3.left * 0.1f, Space.Self);

        }

        if (Input.GetKey(KeyCode.D))

        {

            m_Transform.Translate(Vector3.right * 0.1f, Space.Self);

        }

        if (Input.GetKey(KeyCode.Q))

        {

            m_Transform.Rotate(Vector3.up, -1.0f);

        }

        if (Input.GetKey(KeyCode.E))

        {

            m_Transform.Rotate(Vector3.up, 1.0f);

        }

        m_Transform.Rotate(Vector3.up, Input.GetAxis("Mouse X"));

        m_Transform.Rotate(Vector3.left, Input.GetAxis("Mouse Y"));

    }

}

4、回到Unity3D,点击"运行"按钮,发现原来的Scene面板会切换到Game(游戏预览)面板。这时,就可以通过WSAD键控制立方体的前后左右移动,Q和E键控制立方体左右旋转。同时,鼠标前后和左右移动可以控制物体上下及左右旋转了。

Unity3D实现键盘鼠标控制角色移动及旋转

5、测试完成后,发现物体移出地面后竟然会悬在空中不会下落,这时,可以点击“运行”按钮,选中Cube立方体,点菜单“Component"-->"Physics"-->"Rigidbody",可以在检视(Inspector)面板中看到该立方体多了一个“刚体(Rigidbody)组件,因为默认的"Use Gravity"(启用重力)有打上勾。所以,再次运行,可以看到立方体移出地面(Plane)范围后会下落。

Unity3D实现键盘鼠标控制角色移动及旋转

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢