인프런 커뮤니티 질문&답변
기초적인 질문
작성
·
30
답변 2
0
양승근
질문자
컴포넌트로 추가하지 않는 C#클래스 스크립트들도 작동한다는 것이 새로워서요. 기초적인 질문인 것 같지만 클래스 그냥 폴더에 있는 스크립트들도 모두 플레이모드시 작동이 되는건가요? 원래는 하이어라키 상에 삽입된 것들만 작동된다고 생각하고 있었거드요.
0
이재현
지식공유자
안녕하세요. 양승근님,
우선 질문을 제대로 이해했는지 모르겠지만, 상태머신 구현할 때나 다른 코드 작성할 때 기본 Monobehavior와 인터페이스를 상속받아서 사용하는 부분에 대한 질문이신것으로 이해했습니다.
우선 C#은 다중 상속을 지원하지 않지만 Interface를 통해 구현할 수가 있습니다.
public class Enemy : MonoBehaviour, IDamageable, IInteractable
{
...
}그리고 특정 클래스와 느슨한 결합(디커플링) 구조를 구현할 수 있습니다. SOLID 원칙중 인터페이스 분리원칙과도 부합하는 방식이라고 생각하시면 되시구요. 추후 코드의 확장 및 수정에도 용이한 장점도 있습니다.
어떤 부분의 코드에서 의구심이 드셨는지를 몰라서 원론적인 말씀만 드렸습니다.





이해하신대로 모든 스크립트가 게임오브젝트에 추가되지 않아도 특정 클래스에서 참조하고 있다면, 컴파일할 때 같이 컴파일이 됩니다. ~ 스크립터블 오브젝트가 대표적인 예라고 생각하시면 되세요.