首页 理论教育VR理论与应用开发实践

VR理论与应用开发实践

【摘要】:像之前主角的动画一样,给怪物添加Animator Controller。图8-192怪物移动时播放动画怪物攻击新建两个脚本EnemyAttack处理怪物攻击,PlayerHealth处理角色的生命值。图8-193PlayerHealth脚本EnemyAttack如图8-194所示。图8-195怪物预制体加入碰撞体确定isTrigger的选项勾上,并将脚本挂在怪物身上。图8-196选择isTrigger图8-197单击Apply图8-198触发碰撞体

像之前主角的动画一样,给怪物添加Animator Controller(见图8-189)。tips:这个游戏里面的zoomBear和zoomBunny使用的是同一套动画。

可以看到zoomBear没有动画文件,因为和zoomBunny共用,所以需要做两个动画控制器:一个是zoomBunny;另一个是Hellephant(见图8-190)。

怪物一出生就自动寻找主角,当主角死亡的时候则进入idle状态。

将controller挂到预制体上(见图8-191)。

图8-189 给怪物添加Animator Controller

图8-190 动画控制器创建

图8-191 将controller挂到预制体

其余怪物也同样做法,然后运行,可以看到怪物移动的时候会播放动画了(见图8-192)。剩下的状态后期继续做,接下来处理怪物攻击。

图8-192 怪物移动时播放动画

怪物攻击

新建两个脚本EnemyAttack处理怪物攻击,PlayerHealth处理角色的生命值。PlayerHealth如图8-193所示。

图8-193 PlayerHealth脚本

EnemyAttack如图8-194所示。

(www.chuimin.cn)

图8-194 EnemyAttack脚本

每一帧的Update都在判断:如果角色处于攻击范围且时间足够攻击,则调用攻击函数。

这两个函数都是Unity自带的判断碰撞体的函数,函数名不可写错。

给三种怪物的预制体都加入碰撞体,为了编辑方便,可先将预制体拖到地图上,添加SphereCollider(当然也可以用别的Collider,根据怪物体型决定),如图8-195所示。

图8-195 怪物预制体加入碰撞体

确定isTrigger的选项勾上(非常重要),并将脚本挂在怪物身上(见图8-196)。

调整好后单击右上角的Apply,再删掉地图上的怪物就好,其余的怪物做法相同(见图8-197)。

单击运行,打开Console面板,可以看到已经正确触发碰撞体了(见图8-198)。

图8-196 选择isTrigger

图8-197 单击Apply

图8-198 触发碰撞体