본문 바로가기

Unity46

키보드 Customization / GetAxis 마우스 상 하 좌 우를 조절할 때 처음엔 이렇게 썼음. 하지만 딱봐도 귀찮고 길다. 문제점 두가지. 1. 키보드 키를 하나씩 명시하고 싶지 않다. (W,A,S,D..) 2. 수직, 수평 방향을 꼭 네가지 케이스로 나눌 필요가 있을까? 해결 방안 예를 들어, 발사 기능에는 "Fire"라는 키보드 세팅 기능이 있음 즉 실제 게임에서는 처럼 기능을 1:1로 매핑하지 않음 그 사이에 Fire라는 이름을 한 번 거쳐감. 왜 이렇게 할까? 게임을 할 때 마우스 왼쪽 입력을 바로 들어가는게 아니라(이렇게 안한다 예시) Fire 라는 이름에 들어가니까 마우스 왼쪽 버튼이 있는거임. ( 발사 기능 - "Fire" - 마우스 왼쪽 버튼 ) 이렇게 하면 customization을 할 수 있음. // 이렇게 안한다. if(입.. 2021. 6. 26.
게임 엔진의 원리 : 메시지와 브로드캐스팅 컴포넌트들이 어떻게 외부의 간섭 없이 스스로를 동작시킬까? 유니티의 모든 컴포넌트들은 MonoBehaviour 클래스를 상속함. 즉 MonoBehaviour 클래스 위에 컴포넌트 고유의 기능을 덧붙임. MonoBehaviour 클래스는 유니티에서 미리 만들어서 제공하는 클래스이고 컴포넌트로서 동작하기 위한 기초 기능들을 모두 제공함. MonoBehaviour - 컴포넌트로서 게임 오브젝트에 추가될 수 있다. - 유니티의 통제를 받는다. - 유니티 이벤트 메시지를 감지할 수 있게 된다. 유니티엔진에서 모든 씬의 모든 게임 오브젝트에 각각의 어떤 컴포넌트가 붙어있는지 모조리 실시간으로 한 번에 파악할 수 있는 매니저같은 것은 없음. 그러나 유니티의 대부분의 컴포넌트들은 예를 들어 초기화 메서드 같은 것들은 .. 2021. 6. 10.
게임 엔진의 원리: 게임 오브젝트와 컴포넌트 상속으로 개발의 생산성을 올린다. 그러나 상속이 늘 좋을까? 놉! 자식은 부모의 빚까지 상속해야한다. 선택적으로 상속받을 수 없다. 상속으로 오히려 코드를 재사용하기 힘든 경우가 나타날 수 있다. 그 근본적인 이유는, 미래에 사용될 '최소 필수집합'을 미리 예상하는 것이 힘들다는 것! 다시 말하면 완벽하게 순수한 베이스 클래스를 만드는 것은 어렵다는 것. + 기획자가 프로그래머에게 의존하게 되는 문제 이 방식을 해결할 수 있는 방법은 상속이 아니라 가지고 있는 것. A는 필요한 기능이 있을 때마다 그 기능을 가진 오브젝트를 자기 내부에 포함시킴. 상속이 아니라! 즉, 선택적으로 기능을 골라 붙임. 비어있는 컨테이너를 만들어놓고 그 컨테이너에 기능들을 선택해서 붙이는 것. : 게임 오브젝트- 컴포넌트 방식.. 2021. 6. 9.
Unity 폴더 필수 요소 Assets, Packages, ProjectSettings 만 필수. 프로젝트 보낼 때 이것만 남기고 삭제하면 용량 줄일 수 있음. 그러나 이것만 남기면 나머지는 프로젝트 생성할 때 다시 생성하는거라 시간은 오래 걸릴 수 있음. 다시 말하면 Assets 폴더를 가지고 있는 폴더가 Unity 폴더. 2021. 6. 8.