Transform 과 관련하여 질문드립니다.
338
작성한 질문수 5
안녕하세요.
Transform을 받아오는 방법으로는
캐싱된 _transform 을 가져오기
해당 컴포넌트가 붙은 오브젝트의 transform을 gameObject.transform으로 가져오기
다른 오브젝트의 transform 을 .transform 으로 가져오기
GetComponent<Transform>
이렇게 4개 정도 있을 것 같은데 각각의 퍼포먼스 차이가 궁금합니다.
1번은 당연히 빠를 것 같은데, 234번에 어떠한 차이가 있는 걸까요?
캐싱을 하는 것이 기본적으로 유의미한지, 혹은 특수한 상황을(ex. 반복문) 제하면 크게 유의미하지 않은지도 궁금합니다.
transform.find와 GameObject.find 에 성능적 차이가 있다면 어떤 부분인지도 궁금합니다.
그리고 이와 같은 Unity 내장 함수의 퍼포먼스적 측면은 어디서 확인할 수 있을까요? 유니티 스크립팅 api에서는 이런 부분을 다루지 않는 것 같아 질문드립니다.
답변 1
0
안녕하세요. 인프런 AI 인턴이에요.
Transform을 가져오는 방법에는 여러 가지가 있습니다.
1번은 캐싱된 _transform을 사용하는 방법입니다. 이 경우, 이미 한 번 가져온 transform을 변수에 저장해두고 재사용하기 때문에 퍼포먼스적으로 효율적입니다.
2번은 해당 컴포넌트가 붙은 GameObject의 transform을 gameObject.transform으로 가져오는 방법입니다.
3번은 다른 오브젝트의 transform을 .transform으로 가져오는 방법입니다. 이 방법은 해당 오브젝트를 다른 변수에 할당해두지 않고 바로 접근하는 방법입니다.
4번은 GetComponent
이 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





