0

객체 내부에서 충돌을 얻는 방법을 알고 싶습니다. 큰 원이 있고 원 안에 작은 정사각형이 있습니다. 게임이 시작되면 원이 축소됩니다. 그리고 원하는 것은 원이 만져지거나 사각형 안에 있으면 충돌을 확인하는 것입니다.Unity 2D C# - 객체 내부에서 충돌이 없음

도와주세요. 고마워요

+0

원과 사각형의 중심이 같은가요? 그렇다면 기본 수학을 사용할 수 있으므로 전혀 충돌 감지가 필요하지 않기 때문입니다. – Keiwan

+0

그래, 그들은 같은 센터. 그리고 제가 언급하고자하는 것은 게임 객체의 스프라이트를 변경하는 것입니다. 원은 삼각형이나 정사각형 및 다른 기하학적 인 것들로 바뀔 수 있습니다. – CallMany

+0

그러나이 두 객체 (사각형 - 원)의 충돌을 감지하는 방법을 말해 주면 괜찮습니다. – CallMany

답변

1

내가 아는 한 Unity에서 이것을 구현하는 기본 방법은 없습니다 (충돌기가 다른 충돌기에 완전히 들어 있는지 여부를 감지하는 기본 제공 방법이 없습니다).

이 경우 당신이 제대로 원이 축소하려고하고 이해가

enter image description here

당신이 뭔가를 할이 시점에 도달하면 예를 들어, 일부 코드을 실행하십시오.

당신이 원을 위해 일 할 수있는 방법과 그냥이 될 것 수학을 기반으로 사각형 : 다음, 당신의 사각형의 측면 길이 a의이고 당신의 원 r의 감소 반경이있는 경우

당신이 두 사람 사이의 관계 위의 이미지에서 볼 수있는 순간입니다 :

r = a/sqrt(2) 

그래서 당신이 Update 기능에 if (r <= a/Mathf.Sqrt(2))을 확인하고 그 기반으로 몇 가지 함수를 호출 할 수 있습니다. (아마 한 번만 호출되는 기능을 보장하기 위해 다른 부울을 추가합니다.)

당신은 분명히 원 스프라이트의 절반 폭 것

width = GetComponent<SpriteRenderer>().bounds.size.x; 

당신의 원의 반지름을 사용하여 스프라이트 폭을 얻을 수 있습니다.

모든 프레임에 GetComponent을 호출하는 대신 변수에 SpriteRenderer을 한 번 저장해야합니다.

등변 삼각형 방정식 a 삼각형의 변의 길이

r = a/sqrt(3) 

것이다.

+0

아, 정말 고마워요. 그리고 그 삼각형은 어떨까요? 삼각형이 사각형 대신에있을 경우 (큰 원 - 작은 삼각형) – CallMany

+0

음, 그 것은 특정 삼각형 모양에 달려 있습니다. 그것은 정삼각형입니까? – Keiwan

+0

예, 그 삼각형 – CallMany