모름

EP02. player controller

이번 에피소드에선 플레이어를 컨트롤하는 부분을 만들었습니다.

 

인상깊었던 부분은 플레이어 컨트롤하는 부분을 두 클래스로 나눈 점입니다. 이번 장에선 Player.cs와 PlayerController.cs이렇게 두 클래스를 이용했습니다.

[RequireComponent (typeof(PlayerController))]

그리고 위와같은 클래스를 처음 사용해봤는데, 의존성 클래스를 현재 클래스에 하나로 묶어주는 역할을 해줍니다. 예를 들어 PlayerController.cs가 항상 Rigidbody가 필요하다면 아래 코드를 적어주기만 하면됩니다.

[RequireComponent (typeof(Rigidbody))]

위 코드로 인해 플레이어 컨트롤러라는 스크립트를 오브젝트에 할당할때 항상 리지드바디가 함께 따라오게됩니다. 설정오류를 피할 수 있다는 점에서 유용합니다.

 

그 외 인상 깊은 점은, Player와 PlayerController를 분할하여, 그에맞는 역할을 깔끔하게 나눠준점이 재밌었습니다.

 

 

EP03. Gun Controller

이번 에피소드에선 무기 시스템을 만들었습니다. 인상 깊었던 점은 굉장히 유연한 구조로 클래스가 작성됐다는 점입니다. 예를 들면 Projectile.cs는 발사체만의 스크립트를 가지고 있으며, Gun.cs는 Shoot이라는 기능을 하고, GunController.cs는 총을 컨트롤하는 역할을 합니다.

 

만약 총을 쏘고 싶다면, GunController에서 Gun에게 Shoot을 하라는 메세지를 보내며, Gun은 자신이 가지고 있는 기능인 Shoot을 실행시킵니다. 여기서 Shoot의 빈도(연사), 총알의속도를 인자로 총알에게 넘겨주고 총알을 생성시킵니다. 마지막으로 Projectile(발사체, 총알)에선 그저 정해진 방향대로 전진하기만 합니다. 

 

최근에 뭣도 모르지만, 객체지향에 관한 책을 사서 읽었습니다. 이 책에 따르면 객체는 현실세계에서의 객체와 다르게 모두가 능동적인 역할을 한다고 합니다. 현실세계에선 총알은 뇌관의 폭발에 의해 힘을 받아 날라가는 수동적인 존재입니다. 하지만 객체지향언어에선 총알은 하나의 능동적인 존재로서 자가발전하며 앞으로 전진해나갑니다.

 

이러한 차이를 조금 느낄 수 있는 튜토리얼 에피소드였습니다. 이러한 짜임새가 아직은 어렵게 느껴지지만 익숙해진다면 깔끔하고 멋진 코드를 쓸 수 있지 않을까 기대가됩니다.