강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

양승근님의 프로필 이미지
양승근

작성한 질문수

절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part3) : Netcode로 개발하는 2D RPG

적 캐릭터 상태 머신 구현 (1/2)

기초적인 질문

작성

·

30

0

현재 16강을 듣고 있는데요. 코드를 짜시는 형태가 대부분 c#클래스와 인터페이스를 구조로 해서 필요할 때 가져와서 사용하는 구조인 것 같은데요. 궁금한 점은 하이어라키에 있는 스크립트와 그냥 스크립트로만 존재하는 것은 어떤 차이가 있을까요?

 

질문이 이해가 잘 되지 않으실수도 있을 것 같은데요. 저는 거의 모든 스크립트를 만들어서 하이어라키 오브젝트 안에 넣어서 만들었거든요.

답변 2

0

양승근님의 프로필 이미지
양승근
질문자

컴포넌트로 추가하지 않는 C#클래스 스크립트들도 작동한다는 것이 새로워서요. 기초적인 질문인 것 같지만 클래스 그냥 폴더에 있는 스크립트들도 모두 플레이모드시 작동이 되는건가요? 원래는 하이어라키 상에 삽입된 것들만 작동된다고 생각하고 있었거드요.

이재현님의 프로필 이미지
이재현
지식공유자

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

0

이재현님의 프로필 이미지
이재현
지식공유자

안녕하세요. 양승근님,

우선 질문을 제대로 이해했는지 모르겠지만, 상태머신 구현할 때나 다른 코드 작성할 때 기본 Monobehavior와 인터페이스를 상속받아서 사용하는 부분에 대한 질문이신것으로 이해했습니다.

우선 C#은 다중 상속을 지원하지 않지만 Interface를 통해 구현할 수가 있습니다.

public class Enemy : MonoBehaviour, IDamageable, IInteractable
{
    ...
}

그리고 특정 클래스와 느슨한 결합(디커플링) 구조를 구현할 수 있습니다. SOLID 원칙중 인터페이스 분리원칙과도 부합하는 방식이라고 생각하시면 되시구요. 추후 코드의 확장 및 수정에도 용이한 장점도 있습니다.

어떤 부분의 코드에서 의구심이 드셨는지를 몰라서 원론적인 말씀만 드렸습니다.

 

 

양승근님의 프로필 이미지
양승근

작성한 질문수

질문하기