2 포인트 사이에 벽이 있는지 여부에 따라 true 또는 false를 반환하는 간단한 DirectPath bool 함수가 있습니다.Unity2에서 Physic2D.Linecast()와 함께 layerMask 사용하기 C#
public bool DirectPath (Vector2 start, Vector2 end) {
RaycastHit2D hitWall = Physics2D.Linecast (start, end, 8);
if (hitWall == null) {
Debug.Log ("Direct path returning true");
return true;
} else {
Debug.Log ("Direct path returning false");
return false;
}
}
나는 나의 레이어 목록에서 숫자 8 게임에 "벽"의 모든 벽 colliders의 layerMask을 설정했습니다. 하지만이 함수는 매번 false를 반환합니다. 즉, 매번 벽 충돌자가 충돌하고 있음을 의미합니다. "시작"지점도 충돌 자 내부에 있지 않으므로 자체 충돌자를 치는 것이 불가능할 수 있습니다. 하지만이 동일한 기능을 사용하여 플레이어의 시선을 결정하고 싶습니다. 따라서 충돌자가 포함됩니다.
,하지만 난 7을 시도하고 여전히마다 false를 반환한다. hitwall.collider.gameObject.name이 무엇인지 보았습니다 만 아무 것도 반환하지 않습니다. 그것이 실제로 부딪히는 것을 확인하는 올바른 방법입니까? –