首页 理论教育游戏胜负逻辑探秘-虚拟现实理论基础与应用开发实践

游戏胜负逻辑探秘-虚拟现实理论基础与应用开发实践

【摘要】:图9-71创建游戏管理器的逻辑脚本游戏胜负逻辑是与GameManager等脚本关联起来的。图9-76添加Look At Target组件运行游戏,发现收集物状态UI已经可以正常显示,面向摄像机了。图9-78添加Wall Mover组件图9-79组件关联在Scripts文件夹内右键Create→C# Script,重命名GoalZone,用于处理到达终点的逻辑。找到VR Win Panel→Exit Game Button上的Button组件,设置On Click事件调用为Game Manager UI→GameManager.ExitGame方法。图9-84设置完成的效果显示成功拾取到4个盾牌收集物到达GoalZone,也会弹出VR Win Panel的UI,可以进行一样的操作。

图9-71 创建游戏管理器的逻辑脚本

游戏胜负逻辑是与GameManager等脚本关联起来的。在Scripts文件夹内右键Create→C# Script,重命名GameManager,创建游戏管理器的逻辑脚本(见图9-71)。

GameManager脚本的图标也与其他普通的脚本不太一样,表示其重要的作用。这个脚本会控制玩家角色有多少可用的时间、玩家得分多少以及检测玩家胜负的情况。

找到Player_FullControl脚本中FixedUpdate方法中,为胜负处理预留的位置,添加以下代码:

找到CollectableSpawner脚本中CollectableTaken方法,在开头添加以下代码:

在Scripts文件夹内右键Create→C# Script,重命名WallMover,控制胜利时移动城墙的逻辑脚本。

将Game Manager UI下的TimerPanel拖到Environment下作为子节点(见图9-72)。

接着会提示“Break the prefab”选择Continue。将CollectPanel拖到Viking_Sword下作为子节点(见图9-73)。

图9-72 拖拽TimerPanel至Environment

图9-73 拖拽CollectPanel至Viking_Sword

图9-74 拖拽VR Win Panel和VR Loss Panel至Camera Control Rig

将VR Win Panel和VR Loss Panel都拖到Camera Control Rig下作为子节点(见图9-74)。

重新调整UI布局之后,运行游戏查看效果(见图9-75)。

收集物状态面板已经与维京人角色一同移动了,但是它会跟随角色的角度一起旋转,需要一个方式让UI始终朝向摄像机

在Scripts文件夹内右键Create→C# Script,重命名LookAtTarget,控制UI朝向的逻辑脚本。

图9-75 运行游戏的效果

选择Viking_Sword→CollectPanel,添加Look At Target组件(见图9-76)。

图9-76 添加Look At Target组件(www.chuimin.cn)

运行游戏,发现收集物状态UI已经可以正常显示,面向摄像机了(见图9-77)。

图9-77 收集物状态正常显示

找到Environment→Wall,添 加Wall Mover组 件(见 图9-78)。

找到Game Manager UI游戏对象,添加Game Manager组件,分 别 将Environment→Wall、Environment→TimerPanel→TimerCanvas→Time Text、Viking_Sword→CollectPanel→CollectCanvas →Collect Text、Camera Control Rig→VR Win Panel和Camera Control Rig→VR Loss Panel关联到Game Manager的选项上(见图9-79)。

图9-78 添加Wall Mover组件

图9-79 组件关联

在Scripts文件夹内右键Create→C# Script,重命名GoalZone,用于处理到达终点的逻辑。

在Hierarchy中,找到Environment→GoalZone,通过Add Component添加GoalZone组件。

在Scripts文件夹内右键Create→C# Script,重命名VRUIPanel,用于控制VR浮空UI的逻辑。

找到Hierarchy中,VR Win Panel和VR Loss Panel,添加组件VRUI Panel(见图9-80)。

图9-80 添加组件VRUI Panel

指定Pre Selected Button为各自子节点Play Again Button按钮

找到VR Win Panel→Play Again Button上的Button组件,设置On Click事件调用为Game Manager UI→GameManager.ReloadScene方法(见图9-81)。

找到VR Win Panel→Exit Game Button上的Button组件,设置On Click事件调用为Game Manager UI→GameManager.ExitGame方法(见图9-82)。

在VR Loss Panel上做同样的操作。运行游戏,时限一到就会弹出VR Loss Panel的UI(见图9-83)。

图9-81 设置Button组件(1)

图9-82 设置Button组件(2)

图9-83 设置VR Loss Panel

可以通过键盘上下键移动按钮的选中状态,按回车选择功能(见图9-84)。

图9-84 设置完成的效果显示

成功拾取到4个盾牌收集物到达GoalZone,也会弹出VR Win Panel的UI,可以进行一样的操作。