WEBGL学习笔记(三):射线检测
游戏已经做好,但是博客园不能支持哈,我在我的独立博客里面加入了这个游戏。
加载时候会黑屏,等待数秒即可,点击这里体验试玩:FlappyBird3d游戏试玩
射线检测Raycaster
这个类将射线检测变得容易,射线检测用于挑选或者更多。
结构(Constructor)
Raycaster( origin, direction, near, far ) {
origin — 射线发射的原点
direction — 射线发射的方向
near — 超过这个距离的物体才会被检测到,默认为0
far — 超过这个距离就检测不到了 . 默认为无穷大
这将产生一个射线对象(想象着你拿着你把你定义的光剑去捅,捅到东西就检测到了!)
属性
#
.ray
用于射线检测的射线(啊,我的光剑)
#
.near
小于这个距离我的大宝剑就捅不到了,不能为负数,并且要比far属性要小。(把它想象成剑柄吧)
#
.far
不多解释了,大宝剑的长度
#
.precision
大保健的精度?我觉得忽略就好...
方法
#
.set ( origin, direction )
origin — 射线的发射地点(你的手)
direction — 发射方向(剑峰所指)
一看就知道是个设置属性的方法嘛
#
.intersectObject ( object, recursive )
object - 对象,以检查是否与射线相交。
recursive - 如果设置,它还会检查所有后代。否则,它只能与对象检查intersecton。
检查射线和使用或不使用后裔对象之间的所有交叉点。交叉口返回按距离排序,最近的第一位。
[ { distance, point, face, faceIndex, object }, ... ]
(我的理解是和指定对象做检查,检查结果就是距离最近的,这里怎么说?容我三思...)
Source
src/core/Raycaster.js