inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Transform 과 관련하여 질문드립니다.

338

강승연

작성한 질문수 5

0

안녕하세요.

 

Transform을 받아오는 방법으로는

  1. 캐싱된 _transform 을 가져오기

  2. 해당 컴포넌트가 붙은 오브젝트의 transform을 gameObject.transform으로 가져오기

  3. 다른 오브젝트의 transform 을 .transform 으로 가져오기

  4. GetComponent<Transform>

이렇게 4개 정도 있을 것 같은데 각각의 퍼포먼스 차이가 궁금합니다.

1번은 당연히 빠를 것 같은데, 234번에 어떠한 차이가 있는 걸까요?

캐싱을 하는 것이 기본적으로 유의미한지, 혹은 특수한 상황을(ex. 반복문) 제하면 크게 유의미하지 않은지도 궁금합니다.

 

transform.find와 GameObject.find 에 성능적 차이가 있다면 어떤 부분인지도 궁금합니다.

 

그리고 이와 같은 Unity 내장 함수의 퍼포먼스적 측면은 어디서 확인할 수 있을까요? 유니티 스크립팅 api에서는 이런 부분을 다루지 않는 것 같아 질문드립니다.

C# unity

답변 1

0

인프런 AI 인턴

안녕하세요. 인프런 AI 인턴이에요.

Transform을 가져오는 방법에는 여러 가지가 있습니다.
1번은 캐싱된 _transform을 사용하는 방법입니다. 이 경우, 이미 한 번 가져온 transform을 변수에 저장해두고 재사용하기 때문에 퍼포먼스적으로 효율적입니다.

2번은 해당 컴포넌트가 붙은 GameObject의 transform을 gameObject.transform으로 가져오는 방법입니다.

3번은 다른 오브젝트의 transform을 .transform으로 가져오는 방법입니다. 이 방법은 해당 오브젝트를 다른 변수에 할당해두지 않고 바로 접근하는 방법입니다.

4번은 GetComponent을 사용하여 해당 컴포넌트의 transform을 가져오는 방법입니다.

이 4가지 방법의 퍼포먼스 차이에 대해서는 정확한 정보가 없으며, 실제로는 매우 작은 차이가 있을 수 있습니다. 일반적으로 1번과 4번이 효율적인 방법으로 알려져 있습니다. 하지만 어느 방법을 사용하느냐에 따라 성능 차이가 큰 상황인지는 코드의 특성과 최적화 여부에 따라 달라질 수 있습니다.

transform.find와 GameObject.find에 대한 퍼포먼스 차이도 있을 수 있습니다. transform.find는 현재 Transform 아래에 있는 특정 오브젝트를 찾는 함수이고, GameObject.find는 Scene 상에서 특정 오브젝트를 찾는 함수입니다. 퍼포먼스 차이는 있을 수 있으나, 정확한 차이에 대해서는 자세한 실험을 통해서 알 수 있을 것입니다.

Unity의 내장 함수의 퍼포먼스적 측면은 공식 문서나 유니티 포럼 등에서 알아볼 수 있습니다. Unity의 스크립팅 API 에서는 퍼포먼스에 대한 세부 정보를 제공하지 않을 수도 있습니다. 따라서 Unity의 공식 문서나 유니티 포럼을 참고하여 성능에 대한 정보를 확인할 수 있습니다.

더 자세한 내용은 Unity 관련 문서 또는 유니티 포럼을 참고하시기 바랍니다. 좋은 하루 되세요!

UI 기능 관련 질문이 있습니다!

0

26

2

픽셀 좌표 스크린 좌표

0

27

0

전체적으로 코드 읽는게 굉장히 오래 걸리네요...

0

68

2

카메라 #2 수업 캐릭터 쓰러짐 해결

0

80

1

플레이어 움직임이 끝날때, 기울어짐 현상

0

81

1

Input 적용과 관련하여 질문 있습니다.

0

72

1

디버그 불가.. Unity에 연결 불가

0

77

1

달리기 애니메이션 에러

0

85

2

오랜만에 게임을 만들다가 사운드 관련해서 뭔가 궁금한게 있어서 봤습니다

0

63

1

GetKey 오류

0

109

2

에셋을 어디에 올려두신지 알 수 있나요?

0

104

1

재귀호출? 오류나는데 왜 이래요 ?

0

167

6

Animation blending 파라미터 계산

0

65

1

newPos와 to지점이 겹쳐져야 하는거 아닌가요?

0

94

3

오브젝트 복제하니까 자꾸 이런게 뜨면서 꺼집니다

0

85

2

질문있습니다

0

142

2

아 이거 소스코드 같은거 없나요?

0

140

3

질문 드립니다. string.IsNullOrEmpty(name)

0

85

2

@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?

0

133

2

유니티6 NavMesh 안되는분들

1

174

1

Unity6 Unity-Chan Material 마젠타 문제 해결법

7

524

1

GetComponent<Poolable> 질문드립니다.

0

99

2

UI 불러오지 못함

0

116

2

UI 자동화 #1 - Util.cs의 FindChild함수에서 component.name에 컴포넌트 이름이 뜹니다.

0

152

2