Unity Physics.Raycast踩坑
关键点:发射射线的起点坐标是世界坐标关键点:发射射线的起点坐标是世界坐标
关键点:发射射线的起点坐标是世界坐标
下面在来看一下参数:
origin 【重点】世界坐标系中的射线起点.direction 射线的方向.hitInfo 射线碰撞体的信息.maxDistance 射线碰撞检测的最大距离.layerMask 过滤层.queryTriggerInteraction 指定此查询是否应命中触发器.
具体检查方法:
private void AvoidCrossWall() { Vector3 cameraWorldPosition = transform.TransformPoint(cameraTransform.localPosition); Vector3 boshiWorldPosition = transform.TransformPoint(boshiTransform.localPosition); Vector3 dir = boshiWorldPosition - cameraWorldPosition; RaycastHit hit; if (Physics.Raycast(cameraWorldPosition, dir, out hit, dir.magnitude)) { Debug.Log("----Raycast------" + hit.collider.name); } }
上面这段代码的意思是,从摄像机位置,发射一条射线,方向是向着boshiTransform这个物体的,射线长度为摄像机和boshiTransform这个物体之间的长度。
由于我上面的摄像机和物体,都是子物体,所以需要转成世界坐标。
页:
[1]