「Unity入门」Step by Step的太空清理垃圾游戏Part 3:飞船移动与UI

这篇具有很好参考价值的文章主要介绍了「Unity入门」Step by Step的太空清理垃圾游戏Part 3:飞船移动与UI。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

完成基础的太空场景后,我们就可以来实现一些可交互的操作了。在这个游戏中主要可交互的操作有控制飞船飞行方向和点按垃圾收集。在游戏开始后,飞船会以恒定的速度向前方移动,用户则可以摇杆来控制飞船左右、上下转动。通过除此之外,还有切换前后镜头、加速等附加功能。这些操作都是通过“用户界面(UI)来完成的”。相信在日常生活的使用中,大家对此也并不陌生。在这一章节中,我们会完成飞船的以上基本操作和一个可交互的UI。

老规矩,配合教学视频食用效果更佳哦

这游戏怎么做来着?Step by Step的太空清理游戏教程-Part 3

飞船向前移动 – transform

在航空动力学中,飞机可以围绕三个轴进行旋转,分别是Vertical axis(垂直于机身的轴)、Tranverse axis(横穿机身的轴)、和Longitudinal axis(从头到尾穿过机身的轴)。为了区别这三种旋转,给他们分别取名为yaw,pitch,roll。

「Unity入门」Step by Step的太空清理垃圾游戏Part 3:飞船移动与UI,unity,游戏,游戏引擎,c#,用户界面,3d(图源Wikipedia)

这个游戏中,飞船可以pitch(上下转动)和yaw(左右转动)。有许多可以控制旋转的交互方法,比如摇杆,按钮,两指移动视角等等。在这里,我选择了用摇杆的上-下-左-右来控制它的转动。

来到Unity Asset Store,找到一个合适的飞船模型。

  • 选择“Open in Unity”。在Unity编辑器的package manager中打开后下载并导入。

  • 将文件夹中的飞船模型的prefab拖拽到场景中。重命名为”Spacecraft”。

  • 在资产栏的“Scripts”文件夹中新建一个代码文件“Spacecraft”,双击打开。

  • 新建一个公开的变量speed – 我们可以在测试时更简单的改变飞船的初始速度。

public float speed;
  • 在Update中输入:

transform.position += transform.forward * Time.deltaTime * speed;

这代表在开始运行后的每一帧改变飞船的位置(transform.position),改变方向为transform.forward,改变的大小为Time.deltaTime * speed。

  • 保存后回到Unity编辑器。将“Spacecraft”拖拽到飞船的属性栏中。将speed那一栏设定为任意值。

  • 运行游戏,这时飞船开始匀速运动了。

现在,我们添加摇杆。允许用户互动并且控制飞船的旋转。

用户交互界面 – Canvas

在Unity中,所有的用户界面(UI)都需要在Canvas上完成。Canvas本意是画布、幕布,这块幕布可以覆盖在游戏场景上,不会受到相机位置的影响,成为我们所说的“用户界面”。一个游戏中,大多数交互(比如用摇杆控制飞船方向)都需要以Canvas为载体。

新建一个Canvas:

  • 在场景栏中,右击 – 选择”UI“ – ”Canvas”

单击场景栏中的Canvas,按键盘上的”F“,就会聚焦到选中的物体上。可以看到,初始状态的Canvas就是一个空白的巨大幕布。相比之下,场景中其他的物体都及其的小。但在运行后,它们的比例不会这么离谱,canvas只会覆盖整个屏幕,而canvas中的各个部分会保持相应的比例。

把摇杆加到canvas上。

我们提到,Unity Asset Store中不只有各种可以直接使用的模型,还有插件、音效、模版等等好用的工具。这次,我们就会用到Asset Store中的一个摇杆工具。与我们之前用过的3D模型不同的是,摇杆Prefab中自带的代码文件允许仅用简单的参数设置和代码就可以实现摇杆控制。

  • 将链接中的摇杆工具导入到Unity编辑器中。

  • 选中左侧场景栏中的“Canvas”,将摇杆工具的Prefab拖拽到“Canvas”下,使之成为Cavnas的子部分。

    • 可以canvas名称左侧的小三角来伸缩子部件。

  • 重命名为“Controller”,略微调整摇杆到适合的大小和位置。

    • 可以点击运行来测试用户会看到的摇杆位置,进行更合适的调整。

    • 在运行后,摇杆是可以用鼠标拖动的(虽然目前什么效果都不会有)。

控制飞船方向 – Joystick

摇杆工具有两个input:用户在横向和纵向移动的幅度和方向。分别用Vertical和Horizontal表示。

那么,我们该如何把摇杆接收到的用户操作反映在飞船的旋转轨迹中呢?

还记得在行星围绕星球时用到的“center”变量吗?在这里,可以新建一个Joystick(摇杆)变量。在update中,运用Joystick.Vertical和Joystick.Horizontal就可以获得每一帧摇杆在纵向和横向上的变化了。我们再通过得到的变化量改变transform.Rotate,即飞船的方向。

「Unity入门」Step by Step的太空清理垃圾游戏Part 3:飞船移动与UI,unity,游戏,游戏引擎,c#,用户界面,3d

逻辑示意图)

  • 双击打开Spacecraft。

  • 新建一个公开的Joystick变量

  • public Joystick joystick;

    • 通过这个公开的变量,我们可以将Controller拖入到这个变量,从而获得它的输入。

新建两个公开的旋转速度变量

public float pitchSpeed;

public float yawSpeed;

方便我们在调试时修改两个轴上的旋转速度。

  • 在update中,

​​​​​​​transform.Rotate(-pitch * pitchSpeed * Time.deltaTime, yaw * yawSpeed * Time.deltaTime, 0);

​​​​​​​Rotate会改变物体在(x,y,z)轴上的旋转。而改变的量 = 方向 * 速度 * 时间

飞船只会pitch和yaw(见图一),所以Rotate的第三个参数为0。

  • 保存,回到编辑器中将pitchSpeed和yawSpeed都改为20。

现在,运行游戏,拖动摇杆就可以改变飞船的旋转方向啦。

如果有任何疑问或者建议,也欢迎在下方留言评论哟~文章来源地址https://www.toymoban.com/news/detail-791033.html

到了这里,关于「Unity入门」Step by Step的太空清理垃圾游戏Part 3:飞船移动与UI的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Unity学习记录:制作双屏垃圾分类小游戏

    Unity学习记录:制作双屏垃圾分类小游戏

    要实现的功能 游戏操作 在规定时间内,垃圾通过拖拽进入正确垃圾桶的容器,垃圾在这里消失,飞入第二个屏上对应垃圾桶的位置并实现加分和加时间的效果,垃圾拖拽进入不正确的垃圾桶,垃圾会返回到原来的位置,同时,相应的时间也会减少 胜利和失败的条件: 胜利:

    2024年02月03日
    浏览(10)
  • Step by Step使用wxFormBuilder设计用户图形界面并集成入PyCharm

    Step by Step使用wxFormBuilder设计用户图形界面并集成入PyCharm

    wxFormBuilder (简称wxFB)是一个可以用于多种编程语言的图形用户界面设计工具。使用它可以方便的生成Pyhton,C++,PHP的源码文件。此处描述如何设计一个简单的用户输入界面,并将它集成入基于PyCharm IDE的Python项目中。 wxFormBuilder的界面如下: 其中 项目树 :包含所有用到的控

    2024年02月04日
    浏览(51)
  • 微信小程序通知,微信小程序长期订阅消息添加硬件设备能力的设备订阅消息step-by-step

    微信小程序通知,微信小程序长期订阅消息添加硬件设备能力的设备订阅消息step-by-step

    本文目的,分享一个实际案例: 开发微信小程序的报警器的微信订阅消息, 设备报警后触发微信报警 前提: 有一个微信小程序并且微信认证过。 1: 添加设备申请权限 2:按照实际情况填写设备信息, 一般等两天到三天能审核过  3: 申请设备消息能力 , 这个一部不做的

    2024年04月16日
    浏览(13)
  • 苹果MAC电脑怎么清理缓存和垃圾清理呢?

    苹果MAC电脑怎么清理缓存和垃圾清理呢?

    苹果电脑是一种高性能、高品质、高安全的计算机。但是,随着使用时间的增长,苹果电脑也会出现一些问题,比如运行速度变慢、硬盘空间不足、系统卡顿等。这些问题往往是由于应用程序、缓存和垃圾文件的积累造成的。那么,苹果电脑怎么清理应用程序,苹果电脑怎么

    2024年01月23日
    浏览(14)
  • Sitecore10 Demo演示环境Azure一键部署(Step By Step Guide to installing Sitecore10 in Azure Paas)

    Sitecore10 Demo演示环境Azure一键部署(Step By Step Guide to installing Sitecore10 in Azure Paas)

    本文演示Sitecore XP Single(XP0)在Azure上的一键部署,即“30分钟生成Sitecore演示环境”的一环。 关于XP(即Sitecore Experience Platform) roles的相关介绍移步 XP Single配置主要用来开发和测试: Four Sitecore roles: Content Delivery, Content Management, Processing, and Reporting as a single WebApp instance.(cd,

    2023年04月25日
    浏览(14)
  • 数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 4(step by step)

    数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 4(step by step)

    第四章 重要内容:1、多路选择器  2、采用香农展开的多路选择器综合 3、译码器  4、多路分配器  5、优先级编码器  6、代码转换器  7、算数比较电路  8、Verilog语法 纠错:4-11香农展开式最后结果应该是同或门。 Chapter 4 Chapter 4, Problem 1P Chapter 4, Problem 2P Chapter 4, Problem 3P

    2024年02月05日
    浏览(15)
  • Mac电脑清理垃圾软件 Mac电脑清理垃圾的文件在哪 cleanMyMac X 4.8.0激活号码

    Mac电脑清理垃圾软件 Mac电脑清理垃圾的文件在哪 cleanMyMac X 4.8.0激活号码

    Mac用户经常会有这样一些烦恼,比如软件之间的管理,应用生成的缓冲文件怎样删除,还有软件的卸载等等... 如何有效清理Mac中的垃圾文件,删除多余的软件成为Mac用户迫切的需求。本文就为大家介绍几款好用的Mac电脑清理垃圾软件,并说明Mac电脑清理垃圾的文件在哪。 我

    2024年04月11日
    浏览(10)
  • c盘清理软件:清理垃圾、扩大c盘和系统迁移

    c盘清理软件:清理垃圾、扩大c盘和系统迁移

    一、为什么要c盘清理软件 Windows系统采用了NTFS文件系统,这种文件系统特点是有文件碎片和系统产生的临时文件会大量存储到系统盘上,而且在使用电脑的过程中,由于程序的安装、升级、卸载和其他操作会产生大量无用的垃圾文件,这些文件会占据大量的磁盘空间,导致

    2024年02月08日
    浏览(7)
  • mac垃圾清理软件有哪些

    mac垃圾清理软件有哪些

    随着使用时间的增加,mac系统会产生一些垃圾文件,影响系统的性能和稳定性。为了保持mac系统的高效,用户需要定期使用mac垃圾清理软件来清理系统缓存、日志、语言包等无用文件。CleanMyMac是一款功能强大的mac垃圾清理软件,它可以帮助我们快速扫描和删除mac上的垃圾文件

    2024年02月12日
    浏览(11)
  • JVM如何找到并清理垃圾?

    JVM如何找到并清理垃圾?

    若一个对象不被任何对象或变量引用,那么它就是垃圾,需要被回收。 如何找到这个垃圾呢? •引用计数法(Reference Counting) •可达性分析法(GCRooting Tracing) 引用计数法 在对象头维护着一个 counter 计数器,对象被引用一次则计数器 +1;若引用失效则计数器 -1。当计数器为

    2024年01月24日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包