Skip to content

格式

typescript
Physics.SphereCast(ray, radius, maxDistance, mask, cast_trigger)

所属类: Physics

描述

进行球体射线检测。

该方法会在场景中发射一个球体形状的射线,检测球体与物体是否相交,并存储与第一个物体的相交信息。

参数

参数名类型描述
rayRay发射的射线对象
radiusnumber球体的半径
maxDistancenumber球体投射的最大距离
masknumber进行碰撞检测的层级(位运算)
cast_triggerQueryTriggerInteraction?射线是否与触发器进行碰撞检测

返回值

类型描述
RaycastHit|undefined射线是否与物体相交

代码示例

typeScript
class New_TypeScript
    extends Component {

        private hit:RaycastHit;
        private ray:Ray;

    OnStart(): void {
        
        //在场景中创建一个立方体
        let cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        //为该立方体添加一个BoxCollider组件
        cube.AddComponent<BoxCollider>(BoxCollider);
        //将该立方体的位置设置为(0,2,0)
        cube.transform.position = new Vector3(0,2,0); 
        //创建一条从(0,0,0)射向Y轴正方向的射线
        this.ray = new Ray(new Vector3(0,0,0),new Vector3(0,1,0));       

    }

    OnUpdate(): void {

        //进行球体射线检测
        this.hit = Physics.SphereCast(this.ray,1,10000,1);
        if (this.hit) {
            Debug.Log(this.hit.point);
        } else {
            Debug.Log("未击中物体");
        }
    }

}