移动VR一般受到一些设备的限制,操作方式比较有限。现在需要添加移动VR专属的角色控制脚本。运行游戏,检测移动VR的编辑器模拟模式。角色可以顺利跟随导航标识移动到目标位置。图9-121确定Mouse Control是否勾选图9-122检测移动VR的编辑器模拟模式在VRUIPanel中有这么一段代码:主要就是为了Cardboard而实现的Cardboard输入操作就是通过这个Input.GetTouch来实现的。......
2023-10-17
贪食蛇游戏主要实现功能:WASD键或上下左右键控制蛇移动方向,吃到冰激凌加分,并且增长蛇身。游戏提供两种蛇的样式可选,而且有两种有无边界模式可选。记录当前得分和历史最高分。
1)场景搭建
新建2D工程,新建StartScene场景,Game场景设置为1 280×720大小,导入资源。我们使用UGUI制作UI及人物,开始界面效果(见图8-74)。Canvas要设置为Screen Sapce Camera模式(见图8-75)。
图8-74 开始界面
图8-75 Canvas设置
需要注意的是,皮肤和模式分别只能二选一,Toggle Group的Allow Switch off不能勾选(见图8-76)。
新建主场景MainScene,效果如图8-77所示。因为需要开发一个边界模式,新建四个对象,放入场景四边,并添加碰撞体,勾选Is Trigger。
图8-76 皮肤和模式选择
注意:四面墙分别命名为Up、Down、Left、Right,新建一个父对象统一管理。
2)实现思路
图8-77 主场景
图8-78 实现思路
如图8-78所示有两种主要方式可以实现蛇的移动:第一种方式,从蛇尾的最后一节开始,依次向前一节蛇身的位置移动;第二种,蛇头每向前移动一个位置,就将蛇尾的最后一节移动到蛇头刚才的位置。我们选择第一种方式,因为蛇有两种颜色相间的蛇身,如果第二种方式,会让蛇身的颜色混乱。
3)开发蛇头
图8-79 蛇头
新建一个Image,命名为SnackHead,Source Image修改为蛇头图片,长宽设置为45×45,添加Rigidbody2D和BoxCollider2D组件,勾选Is Trigger,为其添加一个空的父物体Snack,方便管理蛇头和以后添加的蛇身(见图8-79)。
在SnakeHead上挂载脚本SnakeHead.cs。首先实现蛇头的移动、转头、空格键加速操作。实现主要思想,InvokeRepeating方法持续间隔一定时间调用控制蛇头移动的Move方法,然后Update方法监听按键,判断蛇头移动的XY增量。并实现蛇头转向,利用InvokeRepeating的间隔调用时间来控制蛇头移动的速度。需要注意根据实际情况设计蛇头移动步长Step的大小,最好能让蛇头在有限范围内移动整数步。
4)食物生成(www.chuimin.cn)
开发食物,新建一个Image,命名为SnackBody,source image设置为任意的食物图片,长宽设置为35×35,添加Box Collider2D,勾选is trigger,需要注意碰撞器大小设置稍微小一点,防止蛇头擦肩而过的时候,发生碰撞,标签设置为Food,最后设为预制体(见图8-80)。
设置步长step为30px,计算后得到世界坐标中心点到四周的步数,但为了防止出现食物“卡”在边缘(见图8-81),将步数各减一步。
图8-80 食物开发
图8-81 “食物”卡住
在Canvas下设置一个子物体FoodRoot,挂载脚本FoodCreator.cs。将FoodCreator设置为单例模式,只需实例化一次,方便调用。我们规定游戏开始,就生成一个食物,蛇每吃掉一个食物就随机生成其他食物,并有一定概率生成特殊奖励。特殊奖励的预制体和食物制作差不多。
5)处理蛇身的生成
蛇身SnakeBody的制作和前面类似,tag设置为Body,设为预制体。我们使用List<Transform>来存储蛇身,需要注意引用命名空间using System.Collections.Generic。在SnakeHead.cs中新增AddBody()方法,然后添加OnTriggerEnter2D()用于触发检测,当碰到食物或者奖励的时候,调用AddBody()方法,实现蛇吃食物增加蛇身的功能。
6)实现蛇移动
实现方法如图8-82所示。
将前一节的位置赋值给后一节,实现蛇身的移动
图8-82 蛇身移动
在SnakeHead类中添加Move方法,使用List<Transform>记录蛇尾的位置信息。
最终效果预览如图8-83所示。
图8-83 效果预览
图8-84 project列表
有关虚拟现实理论基础与应用开发实践的文章
移动VR一般受到一些设备的限制,操作方式比较有限。现在需要添加移动VR专属的角色控制脚本。运行游戏,检测移动VR的编辑器模拟模式。角色可以顺利跟随导航标识移动到目标位置。图9-121确定Mouse Control是否勾选图9-122检测移动VR的编辑器模拟模式在VRUIPanel中有这么一段代码:主要就是为了Cardboard而实现的Cardboard输入操作就是通过这个Input.GetTouch来实现的。......
2023-10-17
实现PC VR功能之前,这里先实现在编辑器环境内通过鼠标模拟VR头盔的操作。通过顶层菜单Edit→Project Settings→Player,打开Player设置窗口,找到最下面的XR Settings。图9-110Player设置窗口的XR Settings在Enable VR的前提下,单击+号添加OpenVR,即支持SteamVR的HTC Vive硬件。为了便利PC VR控制器的输入操作,创建一个键盘与控制器通用的角色控制脚本。图9-112取消勾选Player_Full Control找到Camera Control Rig,取消Camera Editor Control的Mouse Control项目的勾选。图9-113中2号的控制圆盘就能进行上下左右的移动,以及UI的操作。......
2023-10-17
GPIB接口是一种8位数字并行通信接口,其数据传输速率为8Mbit/s。GPIB设备分为听者、说者和控制器。GPIB接口的优点在于通过一个接口可以将多个GPIB设备连接在一起,同时完成多种不同物理量的测量。GPIB的连接方式如图4-6所示。GPIB总线是一个数字化24线并行总线。GPIB的基地址共有31个。GPIB接口卡主要用于将仪器与计算机相连,各GPIB接口之间用GPIB连接电缆连接。......
2023-07-02
使用系统提供的“移动”功能可以在指定方向上按指定距离移动对象。指定的两个点定义了一个矢量,用于指示选定对象要移动的距离和方向。例如,如果指定基点为(3,5)并在下一个提示下直接按
2023-06-20
知识窗● 无线接入包括固定无线接入和移动无线接入两大类。◇移动卫星接入系统 这是通过同步卫星实现移动通信联网是一种理想的无线接入方式,可以真正实现任何时间、任何地点、任何人的移动通信。......
2023-10-19
是以圣人,后其身而身先,外其身而身存。同理,有“道”的人把自身利益摆在最后,反而领先得到利益;把自己的生命置之度外,反而得以保全自身性命。这位战士的义举与老子所说的“后其身而身先”正是出自一个道理。在那一刻,他们把人类的无私本性表现到了极致,真正实现了道家所宣扬的“后其身”。尤其是在这个竞争日益激烈的社会中,先人后己的无私心更成了决定我们人生价值的关键所在。......
2023-12-06
完成本任务所用到的主要知识点:JavaBean 与动作JSP Model 2 架构JSP 内置对象使用JSP Model 2 架构重构网络留言板。在MVC 架构中,一个应用程序被分成3 部分,模型、视图和控制器。所以,若要使用JSP Model 2重构网络留言板,就只需把充当控制器角色的JSP 页面改为Servlet 实现。建立发表留言的Servlet,其代码如下。测试运行重构后的网络留言板项目,效果和Model 1 程序的运行效果一样。......
2023-11-21
考点提示胎膜的构成;胎盘的功能。胎膜和胎盘对胚胎起保护、营养、呼吸、排泄等作用,不参与胚胎本体的形成。胎儿娩出后,胎膜、胎盘与子宫壁分离,并被排出体外。绒毛膜的主要功能是从母体子宫吸收氧气和营养物质供胎儿生长发育,丛密绒毛膜参与形成胎盘。绒毛间隙之间的基蜕膜称为胎盘隔。各种病毒、部分药物,均可通过胎盘影响胎儿。......
2023-11-02
相关推荐