问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2023-10-11 07:14

我来回答

1个回答

热心网友 时间:2024-03-22 00:12

Unity3D实现键盘鼠标控制角色前后左右移动及旋转
打开Unity3D,新建项目,如图,项目名称先填写为“PlayerControl”,然后点“CreateProject”按钮。

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

在层级(Hierarchy)面板中,点鼠标右键,在弹出菜单中选“3D Object”--"Plane"(地面),然后点检视(Inspector)面板中的Transform组件设置按钮,在弹出的菜单中选“Reset”,将添加的地面复位。可以看到在Inspector面板中的Transform组件里,Position(位置)属性X,Y,Z都是0。 下面进行关键的一步,按住ATL键,鼠标移到"Scene"面板中(这时鼠标变成眼睛形状),拖动鼠标,可以移动场景中的视角,注意:一定要将视角移动成如图所示的X轴在右方,Z轴在前方,Y轴在上方。这步很关键,移成这样的方位,后面移动物体时,前后左右才会正常,不然你的方向可能会和别人相反。

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

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

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

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

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

在代码编辑器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.GetComponentTransform(); } // 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")); } }
回到Unity3D,点击"运行"按钮,发现原来的Scene面板会切换到Game(游戏预览)面板。这时,就可以通过WSAD键控制立方体的前后左右移动,Q和E键控制立方体左右旋转。同时,鼠标前后和左右移动可以控制物体上下及左右旋转了。

测试完成后,发现物体移出地面后竟然会悬在空中不会下落,这时,可以点击“运行”按钮,选中Cube立方体,点菜单“Component"--"Physics"--"Rigidbody",可以在检视(Inspector)面板中看到该立方体多了一个“刚体(Rigidbody)组件,因为默认的"Use Gravity"(启用重力)有打上勾。所以,再次运行,可以看到立方体移出地面(Plane)范围后会下落。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有效的教学激励策略有哪些 手机充电嗡嗡响怎么回事 手机在充电时发出嗡嗡作响 手机充电头快充有嗡嗡的声音 影视多媒体设计真的不好找工作吗 专科学影视多媒体技术好就业吗 影视多媒体技术专业就业怎么样 影视多媒体技术就业率 胆结石病人在输血后半个月,全身开始发痒是什么原因,怎样能够止痒呢?谢 ... 有关胆结石手术后的恢复,求教 装广告牌没证怎么办 北京景点关闭通知最新查询,2022北京景区关闭到什么时候结束2022北京景 ... 鱼缸过滤箱有气水怎么处理 爱和死,哪个更冷 别人说好久不见怎么回答? 清朝是怎样加强对边疆地区的管理的?有什么意义?1 不爱自己的男朋友,只是觉得他适合过日子,觉得他人靠谱,这样还要不要... 大家给我介绍一个好的播放器吧2 为什么视频播放器会赠送会员给我2 研究消费心理学的基本方法? iqoo9pro会烧wifi嘛 为什么地球卫星绕地球做匀速圆周运动,其实际绕行速度一定小于7.9km/s... 他人长得一般不是我的现想型,但他的工作能力强也能赚不少钱,和他在一... 三门到宁波四明山多少公里 纽曼超清王q90换屏幕要多少钱 马来西亚思特雅大学留学优势 人造卫星的发射速度多大它才能做匀速圆周运动 仙剑5最后的技能跟哪学啊!!我才学了5个 跟哪买符 说详细点... 冬井无寒冰的下一句冬井无寒冰的下一句是什么 一个手机号怎么申请第二个? 纽曼超清王MP3播放器,插进电脑没反应,怎麽办? 面对女儿早恋怎么办 请问纽曼超清王Q70 mp4支持什么视频格式我下了很多都不行,麻烦了谢谢... 怎样才能把QQ中的陌生人快速全部添加为好友?34 微信怎么快速加好友呢?23 微信怎么才能快速加好友呢?3 ...朋友让我觉得很随便,然后我就直接问她了,她就生气了,说要分手,说对... 等你三年又三年歌曲原唱 法定结婚年龄降到18岁,可以提高生育率吗 窝小芽的一周碎碎面中的食材都是有机的吗? 报考经济学在职研究生,可以脱产进行学习吗? 这个拉丁舞开头的音乐前奏是什么名字啊 你好各位朋友被限制新设备登录,无好友辅助验证用什么方式可以解除... 江苏农牧单招九合格专业食品检验能进3十2联合培养吗 怎么再申请一个 请问绍兴汽车报废在哪办理?电话号码是多少?我是华阳的面包车,是否有补 ... 球员入场造型有多奇葩!施罗德一身粉辣眼睛,一人把泡面桶当帽子_百度... 消费心理学的研究方法有哪些,应遵循的原则包括8 消费心理学的研究内容和主要方法?4 和平精英购买活跃礼包怎么返还?