[Unity] 퍼포먼스와 정적 콜라이더에 대해 ~그리고 가라앉지 않는 동적 콜라이더~

공식 튜토리얼 옥 롤링 13:14 보다.
2회 봐도 무슨 말을 하는지 상쾌했기 때문에, 나름대로 씹었습니다.
(영자막에서 보는 편이 이해하기 쉬웠습니다) 일본어 자막 루 오시바

정적 콜라이더를 움직일 때마다 전체 장면의 정적 콜라이더가 다시 계산됩니다.



Q:콜라이더란?
A: 충돌 판정하고 있는 프레임.

Unity에는 두 가지 유형의 콜라이더가 있습니다.
1. 정적 콜라이더 static Collider2. 동적 콜라이더 dynamic Collider
정적 콜라이더는 Unity에서 움직이지 않는 것으로 정의됩니다.
움직이지 않기 때문에, 게임이 시작되어 시간이 진행되어도, 프레임마다 재계산할 필요가 없지요?
따라서 Unity는 처음에는 장면 영역의 모든 정적 콜라이더를 계산하여 캐시에 저장합니다.

그럼, 정적 콜라이더를 transform 로 회전, 이동시키고 있다면 어떻게 된다고 생각합니까?
제목의 거리입니다.

중요한 것은 transform 하고 있는 정적 콜라이더 1개가 아니고, 전체가 재계산되어 정적 콜라이더의 캐쉬가 갱신되고 있는 것입니다.

공연은 심하게 나쁜 것처럼 보일까요?
사실 개체가 많으면 최악

어딘가의 기사에서,

사양 : 정적 콜라이더 ← 움직이면 안됩니다.

라고만 쓰여져 있고, 읽어도 「(゜Д゚)는?」이었던 것을 기억하고 있다.
어쩌면 이런 말을 하고 있다고 생각한다.

그럼 어때?



무엇이? 느낌이지만, 우선 모두 생각합니다.
그리고 생각하는 것이 「동적 콜라이더로 하면(일단) 에어?」군요?

(아마) 정답!

동영상의 설명을 읽어보면, 동적 콜라이더라면 전체가 아니고, 개별적으로 재계산하고 있으므로, 퍼포먼스가 좋을 것.

그럼 Unity에서의 동적 콜라이더의 요건이란?


  • 콜라이더
  • Rigidbody
    이 두 가지를 가진 게임 객체는 모두 동적으로 간주됩니다.

  • 즉, 지금 움직이고 있는 콜라이더가 있으면, 거기에 Rigidbody 를 추가해 주면, 우선 퍼포먼스가 올라갈 것입니다.

    그리고 지옥을 보



    보는 편이 빠르다. 옥 롤링 14:34 를 우선 봐 주세요.

    그래, Rigidbody 를 추가하면 지구의 중력에 영혼이 묶여집니다.
    그리고 Is Trigger 가 체크되고 있는 아이템계 오브젝트라면 그대로 침몰해 화면 밖까지 사라집니다.

    이 슬픔을 저장하기 위해 Use Gravity의 척을 제거합니다.
    이것으로 침하는 면할 수 있지만, 다른 물리 현상이 여전히 작동합니다.
    구체적으로는 ↓
    2번째 이후의 아이템으로부터는 알기 쉽게 Is Trigger 제외하고 있습니다 하나의 즐거운 방법 취득 가능한 아이템이 아니고, 건물이나 장식으로 회전하는 장식을 원했을 뿐이었는데… 벨트 컨베이어를 구현하고 싶었지만 라는 현실적 요망도 있을까 생각합니다. 아이템이 아니야! 눈에 띄는 배경이야! 하지만 움직이는 것은 곤란하다. 적 그럴 때는 Use Gravity 와 Is Kinematic 의 양쪽 모두에 체크를 넣습니다. 그러면 공중 부유 설정이라면 그대로 지면에 가라앉지 않는다 다른 물체와 충돌해도 날아가지 않는다 동적 콜라이더로 성능 친화적 콜라이더가 완성될 것입니다. 취득 가능한 아이템으로 하고 싶다면 Is Trigger를 붙이면 완벽! 라는 느낌이군요. 마지막으로 초보자가 공식 튜토리얼을 그대로 읽고 시도하고 느낀 소감입니다. 현실의 개발 현장에서는 좀 더 다른 방식으로 같은 일을 하고 있을지도 모릅니다. 다른 방법으로 더 효율적인 아이디어가 있다면 꼭 알려주세요. 물론 기사에 착각으로부터의 실수가 있으면 지적해 주세요. 끝까지 읽어 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기