inflearn logo
강의

Course

Instructor

[MMORPG Game Development Series with C# and Unity] Part3: Unity Engine

UI Automation #1

리플렉션을 써야하는 이ㅠ

501

1riberty

4 asked

1

리플렉션을 써야하는 이유를 잘 모르겠습니다.
리플렉션은 가능하면 지양하는게 좋다고 알고 있습니다. 런타임일반화하는 특성상 성능이 떨어질 수 밖에 없다고 알고 있습니다.

그래서 아래과 같이 작성해 보았는데, 이건 어떠신가요?
가독성 때문에 이렇게 작성하신것 같다는 생각도 들긴하는데 아직 충분히 의문이 해소되질 않네요

image.png


C# unity

Answer 2

2

Rookiss

코드 실행에서 성능의 0.0000001% 를 차지하는 코드를
100배 빠르거나 느리거나 하는 것은 전체적으로 아무런 도움도 되지 않습니다.
매 프레임마다 느린 코드를 호출하는 것이 아닌,
단발성으로 어쩌다 한 번 일어나는 것은 전혀 상관이 없습니다.
제가 오랜 기간 경험해본 결과, 학원에서도 특히 실력이 떨어지는 학생들이 이런 사소한 부분에 연연합니다.
(예를 들면 성능 이유로 a >= 1 보다 a > 0 같은 코드를 써야 하다며 열변을 토하는 친구가 기억나네요)

그리고 typeof를 사용하는 순간, Reflection을 간접적으로 사용하는 것입니다.
그 외 코드 수정은 자유롭게 하시면 되고 이런 부분은 오히려 아주 바람직합니다.

0

1riberty

답변 감사합니다.
FixedUpdate, Update, LateUpdate 등에 들어가는 로직은 신경을 써야하지만, Start Awake Enable Disable 같은 라이프사이클(호출이 많지 않은)의 로직은 성능보다는 가독성에 초점을 맞추라고 이해하면 될까요?

1

Rookiss

네 그렇습니다. 뭐 그렇다고 정말 5중 for문에 1초 걸리는 그런 폭탄은 곤란하겠지만요.

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

0

24

2

픽셀 좌표 스크린 좌표

0

26

0

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

0

67

2

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

0

79

1

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

0

81

1

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

0

72

1

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

0

76

1

달리기 애니메이션 에러

0

85

2

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

0

63

1

GetKey 오류

0

108

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