본 내용은 처음 접하는 Godot: Pong 게임을 만들어 보자 #4 에서 독립적인 내용을 추출한 포스팅 입니다. 고정된 해상도의 스크린이라면 문제가 매우 간단하나, 현실에서는 각종 모니터부터 핸드폰까지 여러 형태의 스크린 사이즈가 존재한다. 앵커 시스템은 가변적인 스크린 또는 부모 컨트롤 사이즈에 대응하기 위한 방법이다. 유니티에서도 이걸 사용하고 있다. 다음 그림을 보자. 그림이 복잡해 보일지 모르겠는데, 간단한 개념이다….
[태그:] Unity
Design Pattern: Observer
블로그나 유튜브를 보면, 구독을 해놓고 새글이나 영상이 올라올 때 알람을 받는다. 이런 상호작용을 게시-구독(Publish-Subscribe)관계라고 한다. Observer pattern은 이처럼 observer를 등록해놓고 대상의 변화에 대한 알람을 받는 경우에 적용되는 design pattern이다. Observer pattern은 callback의 형태로 이미 많은 곳에서 사용하고 있고 경험해봤을 것이다. 안드로이드에서 BroadcastReceiver를 등록해 사용하는 것도 이런 형태의 하나라고 볼 수 있다. 하나의 데이터를 두고 여러방식의…
Design Pattern: Decorator
Decorator pattern은 객체의 기능을 동적으로 확장하고자 할 때, 또는 상속받을 클래스가 상속이 불가능할 때 사용되는 디자인 패턴이다. 게임의 예를 들면 맵을 돌아다니다가 일시적으로 공격력이 강화되거나, 속도가 빨라지거나, 방어력이 강화되는 아이템을 먹는 경우를 생각해 볼 수 있다.이런 효과들은 중첩되어 적용도 가능하다. 또 익숙한 예로는 text editor를 생각해볼 수 있다. 볼드, 이탤릭, 칼라변경등 기본 텍스트를 꾸며주는 기능들이…
Design Pattern: Factory method
Factory Method Pattern 객체 생성을 동적으로 해야해서 어떤 객체를 생성할지 알 수 없을 때, 객체 생성방법을 알고 있는 factory method를 따로 만들고 생성을 이 메소드에 위임해서 동적으로 생성해 사용하는 방법이다. 예를 들면, 여러 포맷을 지원하는 문서 편집기에서 새로운 문서를 생성할 때 문서 생성을 담당하는게 factory method가 된다. 그림판에서 삼각형, 사각형, 동그라미등의 도형을 생성하는 경우, 역시…
Unity: 매우 혼란스러운 Vector3 사용에 대한 이해
unity를 써보면서 기본적이면서도 당황스러운 녀석이 Vector3였다. transform.position.set()을 해도 먹히지가 않네? update()안에서 이렇게 new를 남발해도 되나? 같은 것들. 다른 언어들을 다루다보면, Vector는 당연히 객체로 다룬다. 거기다가 new까지 쓰고 있는걸? 당연하게 머리속에 있던 내용들이 혼란스러워진다. 답은 마음에 안들겠지만 의외로 간단한데, C#에서 Vector는 구조체 타입이다. 그리고 이 구조체 타입은 기본 타입인 int, float, char, enum등과 같이 value type이라서…