3.2.4 射线的使⽤⽅法
在实际游戏开发时,不可避免地要⽤到各种射线检测。即便是⼀个不怎么⽤到物理系统的游戏,也很可能要⽤到射线检测机制。换句话说,射线检测在现代游戏开发中应⽤得⾮常⼴泛,超越了物理游戏的范围。下⾯简单举⼏个例⼦。
(1)游戏中有单击地⾯的操作,因此要发射射线以确定是否点中了可单击区域和单击位置的坐标。
(2)在判定⼦弹或技能是否击中⽬标时,如果采⽤碰撞体需要考虑⼦弹速度,且存在穿透问题,⽽射线是没有速度的(瞬时发⽣),不仅易于使⽤,⽽且综合效率更⾼。
(3)在3D动作游戏或2D动作游戏中,判断玩家是否落地时,可以向⾓⾊脚下发射射线;判断玩家是否接触墙壁时,可以往左右两侧发射射线;判断玩家是否需要低头时,可以往头顶发射射线;判断玩家是否需要攀爬时,同样也可以采⽤射线检测的⽅法。
(4)因为射线与视线⼀样会被障碍物阻挡,所以在游戏AI设计中,可以⽤射线模拟AI⾓⾊的视线。
注意,上所述的各种射线检测都是以物理系统为基础的。射线需要与碰撞体和触发器配合才能发挥出作⽤。
下⾯来介绍⼀下射线编程⽅法。