为了更深入地学习Unity,从朋友那里rob了《Hack & Slash RPG》的教程,继续啃。近300节的视频够看好久了,哈哈。因为之前已经做过生命条的效果,而且妄自以为比教程里的效果要好,因此就直接跳到第二部分了。
▇ 知识点
Debug.DrawLine:在场景视图中绘制一条线段,从字面上理解这个应该是只有调试环境的时候才会生效,真正游戏里边是看不到的。
GameObject.FindGameObjectWithTag:获取带有指定标记的游戏对象。
Quaternion.LookRotation:求两点间旋转的四元数。
Quaternion.Slerp:在两个旋转四元数中做差值,用来做旋转的过渡效果。
Time.deltaTime:获取上一帧到当前所经过的时间,单位毫秒。
▇ 思路
将First Person Controller的Tag设置为Player;
▇ 效果
游戏运行后这方块就追着玩家不放了……当然还可以自己动手尝试加入一些新的特性,比如像魔兽世界中怪物有一定的警觉距离,只有玩家进入了这个范围才会冲向玩家;在一定时间内攻击不到玩家,就会归位等等。
▇ 知识点
Debug.DrawLine:在场景视图中绘制一条线段,从字面上理解这个应该是只有调试环境的时候才会生效,真正游戏里边是看不到的。
GameObject.FindGameObjectWithTag:获取带有指定标记的游戏对象。
Quaternion.LookRotation:求两点间旋转的四元数。
Quaternion.Slerp:在两个旋转四元数中做差值,用来做旋转的过渡效果。
Time.deltaTime:获取上一帧到当前所经过的时间,单位毫秒。
▇ 思路
将First Person Controller的Tag设置为Player;
- 新建一个脚本EnemyAI,附加到任意一个怪物对象上,我这里用Cube代替;
- 在Awake利用FindGameObjectWithTag获取到Player的Transform;
- 在Update方法中让自身的旋转逐渐朝向Player对象,并修改position让自身不停地向前移动;
▇ 效果
游戏运行后这方块就追着玩家不放了……当然还可以自己动手尝试加入一些新的特性,比如像魔兽世界中怪物有一定的警觉距离,只有玩家进入了这个范围才会冲向玩家;在一定时间内攻击不到玩家,就会归位等等。