SendMessage : 특정 메서드를 간단하게 호출하는 기능
게임 오브젝트에 있는 모든 컴포넌트에 대해 지정된 이름의 메서드를 호출할 수 있다.
hit.collider.SendMessage("호출할 메서드 이름", SendMessageOptions);
[SendMessageOptions]
SendMessageOptions.RequireReceiver: 호출한 메서드가 반드시 있어야 하며, 없을 경우 오류가 발생
SendMessageOptions.DontRequireReceiver: 호출한 메서드가 없어도 무시되며, 오류가 발생하지 않음
[SendMessage의 장점]
유연성: 오브젝트가 어떤 컴포넌트를 가지고 있는지 정확히 몰라도 특정 메서드 호출이 가능함
간결함: 특정 컴포넌트를 GetComponent로 일일이 찾지 않고도 메서드 호출이 가능해 코드가 간결해짐
모듈화: 다양한 오브젝트에서 동일한 메서드를 호출할 때 유용하며, 코드의 모듈화를 도움
[SendMessage의 단점]
오타에 취약: 메서드 이름을 문자열로 지정
성능 저하 가능성: 모든 컴포넌트를 검사하기 때문에, 매우 자주 호출되는 경우 성능에 영향을 미칠 수 있음
직접적이지 않음: 추적이 어렵기 때문에, 코드의 가독성이 떨어질 수 있음
+
여러 단점도 있으므로, 코드의 복잡도나 성능 요구사항에 따라 사용 여부를 결정하는 것이 좋다.
프로젝트가 간단하거나, 오브젝트가 많고 다양한 경우, SendMessage는 적합한 해결책이 될 수 있다.
[사용 예]
'Game Development > Unity' 카테고리의 다른 글
[Unity] 안개 - Fog 설정 (0) | 2024.09.05 |
---|---|
[Unity] Cinemachine (1) | 2024.09.03 |
[Unity] Raycast(레이캐스트) (0) | 2024.09.01 |
[Unity] 스크립트 실행 순서 'Script Execution Order' (0) | 2024.08.25 |
[Unity] 터레인 (Terrain) 생성 (0) | 2024.08.20 |