//下面代码演示了 射线只与地面层碰撞检测 void Test7391() { Ray ray = Camera. main. ScreenPointToRay( Input. mousePosition); //射线,从摄像机到鼠标位置的一条射线 RaycastHit raycastHit; //碰撞体信息 int groundLayer = LayerMask.GetMask("Ground");//要碰撞的层,得到地面layer层级 // if(Physics.Raycast(射线,碰撞体信息,射线长度多少米,要检测的碰撞层)) if(Physics.Raycast(ray,out raycastHit,81f,1<< groundLayer)) { //如果碰撞上了. } //如果不写 要检测的碰撞层 参数,那么就默认检测所有层 //射线只排除地面层~(1<<groundLayer)) //射线只检测地面和敌人层:假设地面的层级是5,敌人的层级是6,代码1 << 5 | 1 << 6) //射线只排除地面和敌人层~(1 << 5 | 1 << 6)) }
|