낑깡의 게임 프로그래밍 도전기

Unity 다각형 콜라이더와 면적 계산: CCW알고리즘 세점의 방향성 판별 본문

Unity C#

Unity 다각형 콜라이더와 면적 계산: CCW알고리즘 세점의 방향성 판별

낑깡겜플밍 2024. 5. 16. 11:05
반응형

다각형 내외부 판정은 CCW 알고리즘을 사용

 

https://degurii.tistory.com/47

 

[알고리즘] CCW로 세 점의 방향성 판별하기

0. 들어가기 전에 첫 알고리즘 포스트입니다. 이번에 쓸 내용은 CCW입니다. 원래는 기하 알고리즘들을 전반적으로 다루려고 했는데 생각보다 글이 길어져서 CCW만 쓰게 되었습니다. 본 글의 내용

degurii.tistory.com

참고 블로그

https://www.youtube.com/watch?v=iIDgR5uFy9o

참고 유튜브

 

그렇게 해서 진행 해 볼 것이

https://bloodstrawberry.tistory.com/996

 

유니티 - 오목 다각형의 삼각분할 (Polygon Triangulation)

Unity 전체 링크 참고 - 2차원 평면에서 유한한 선의 교점 구하기 - 삼각형 안에 있는 점 판단하기 - 퍼블릭 변수 변경시 이벤트 발생 - 오목 다각형의 삼각분할 (Polygon Triangulation) - 구멍이 있는 다

bloodstrawberry.tistory.com

이것이다!

 

 void createProceduralMesh()
    {
        mesh.Clear();
        mesh.vertices = vertices.ToArray();
        mesh.triangles = triangles.ToArray();
        mesh.RecalculateNormals();

        Destroy(this.GetComponent<MeshCollider>());
        this.gameObject.AddComponent<MeshCollider>();
    }

위의 코드는 프로시저 메쉬를 생성하는 함수. 여기서 각 줄에 사용된 메쉬 관련 함수에 대해 설명하겠습니다.

  1. mesh.Clear();: 이 명령은 기존 메쉬 데이터를 지우고 새로운 메쉬를 생성할 준비를 합니다. 즉, 메쉬를 초기화합니다.
  2. mesh.vertices = vertices.ToArray();: vertices는 생성된 버텍스(꼭짓점) 리스트이며, 이를 메쉬의 버텍스로 설정합니다. ToArray() 메서드는 리스트를 배열로 변환하는 역할을 합니다.
  3. mesh.triangles = triangles.ToArray();: triangles는 삼각형 인덱스 리스트이며, 이를 메쉬의 삼각형 리스트로 설정합니다. 삼각형 인덱스는 메쉬를 구성하는 삼각형의 버텍스 인덱스를 의미합니다.
  4. mesh.RecalculateNormals();: 이 명령은 메쉬의 법선을 다시 계산합니다. 버텍스와 삼각형 정보를 기반으로 메쉬의 표면 방향을 다시 계산하여 설정합니다.
  5. Destroy(this.GetComponent<MeshCollider>());: 이 줄은 게임 오브젝트에 부착된 MeshCollider 컴포넌트를 제거합니다. GetComponent<MeshCollider>()는 게임 오브젝트에서 MeshCollider 컴포넌트를 가져옵니다. Destroy() 함수는 해당 컴포넌트를 파괴합니다.
  6. this.gameObject.AddComponent<MeshCollider>();: 이것은 게임 오브젝트에 MeshCollider 컴포넌트를 추가합니다. 이를 통해 메쉬가 적절한 충돌을 갖게 됩니다.

이러한 단계들은 프로시저 메쉬를 생성하고 해당 메쉬에 적절한 물리적 특성을 제공하기 위한 일반적인 절차입니다.

 
 
 
반응형

'Unity C#' 카테고리의 다른 글

유니티 속성(컴포넌트) 자동추가  (0) 2024.05.16
Unity OnValidate  (0) 2024.05.16
Unity 숫자 null로 만들기  (0) 2024.05.14
Unity 포이치(PoE) 싱클톤 패턴  (0) 2024.05.10
Unity 다각형 계산  (0) 2024.05.10