분류 전체보기 55

[스터디] delegate 델리게이트란?

유니티에서 델리게이트 delegate는 참 많이 쓰인다.  정확한 정의는 뭔지는 몰라도 대충 함수를 대행? 콜백함수? 이다라는 것은 아니까 나는 항상 사용할 때 Action변수를 만들어서 프로퍼티 Setter와 묶어서 많이 사용했던 것으로 기억한다. 그런데 여기서 문제가 있다. 저번에 면접 보러간 회사에서 delegate의 정의가 무엇인지 설명해 보라고 했다. 대답을 못했다.. 대애애충 ~~ 델리게이트 액션 같이 묶어서 쓰고 뭐~~ 콜백적인 기능이고 뭐고~~~ 이런식으로만 말을 했다... 하지만 그렇게 말하면서도 아 떨어지겠구나.. 라고 생각했다. 그 뒤로 델리게이트의 정의를 다시 공부했다. 하지만 또 까먹었따!! 그래서 써본다 델리게이트란 무엇인가?? 오늘 파해쳐보자!!1. 유니티 이벤트먼저 델리게이트..

[스터디] Enum값을 flag로 사용하기

게임을 개발할 때 여러가지 속성값을 갖는 데이터들이 존재한다. 스킬같은 경우는 불속성, 물속성, 바람속성 등 이 있을 수 있겠고 또 플레이어는 여러가지 상태라는 속성값이 있을 수 있다. 이런 속성들을 간편하게 사용하려면 속성을 Enum값으로 담고 비트 연산자 등을 사용하여 Enum값을 조합하는 등 Flag로 사용하는 것이다. public enum GameState{ Menu = 1, Lobby = 2, JoinMenu = 4,} Enum 열거형으로 사용하며 Enum이 여러 속성들을 선택할 수 있게 해준다.  인스펙터 창에서 여러 속성들을 선택할 수도 있다.  enum(열거형)에서는 Flag(FlagsAttributes)속성이 있는데, 이를 이용하면 하나의 속성을 선택하는 것이 아니라 여러..

[스터디] FSM 패턴과 사용해야 하는 이유

FSM(finite-state machine)은 상태(state)를 기반으로 동작을 제어하는 방식을 구현하기 위한 디자인패턴이다. FSM의 핵심은 단 하나의 상태만을 가진다는 점이다. 상태를 기준으로 어떤 동작을 수행할지 결정하기 때문에 현재 상태만 알 수 있으면 어떤 동작을 수행하려 하는지 명확히 파악할 수 있고 구현이 쉽다는 장점이 있다.   private void Update() { UpdatePlayerDirection(); MovePlayer(); CollectEnv(); } FSM 패턴은 주로 플레이어나 몬스터가 동작할 때 많이 사용한다. 플레이어나 몬스터는 Idle, Attack, Defense,  Move 등 다양한 상태를 가지게 되는데..

[스터디] MonoBehavior 붙이고 안 붙이고 차이

https://simbble.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0%EC%9D%98-MonoBehavior%EB%AA%A8%EB%85%B8%EB%B9%84%ED%97%A4%EC%9D%B4%EB%B9%84%EC%96%B4-%EC%A0%95%EB%A6%AC 유니티 C#) MonoBehavior(모노비헤이비어) 정리유니티를 사용할 때에 스크립트를 만들면 항상 클래스 옆에 MonoBehavior가 적혀있습니다. 별거 아니겠지 하고 깊게 생각 안 하고 코딩을 했었는데, 다른 사람의 코드를 보면 MonoBehavior 대신 다른 단simbble.tistory.com

[스터디] 스프라이트 아틀라스 Atlas 최적화 기법

게임을 개발할 때 마다 머리를 아프게 하는 것이 있다. 바로 프레임이다. 개발을 잘 해놓고 프레임을 확인했을 때 30프레임 미만이 나오면 한숨부터 나온다. 오늘은 그 걱정을 덜어줄 최적화 기법을 소개하겠다. 바로 리소스 파일 최적화 기법인 Atlas 기법이다.   리소스 로드의 속도는 게임 프레임에 큰 영향을 끼친다. 코드를 아무리 잘 짰다고 해도 리소스라는 것은 개발자의 영역이 아니기 때문에 만약 이 리소스를 최적화 할 수 있다면 게임 프레임 개선에 정말 많은 도움이 될 것이다. Atlas를 사용하는 장점은 드로우 콜(Draw Call)을 줄일 수 있기 때문에 사용한다. 드로우 콜(Draw Call)이란 간단하게 이야하기하면 GPU에게 그림을 그려달라고 요청하는 것이라고 보면된다. 그런데 드로우 콜과 ..

[스터디] MVMM 패턴에 대한 설명과 사용법

저번 시간에 MVC 패턴과 MVP 패턴을 학습하였다. 이번 시간에는 MVMM 패턴에 대해서 학습해 보겠다.   먼저 MVVM이 뭐의 약자인지 알아보자. MVVM은 Model-View-ViewModel(VM)의 약자이다. MVC 패턴의 Controller와 MVP 패턴의 Presenter가 사라지고 ViewModel이라는 것이 생겼다. 1. ModelM-V-VM에서의 Model은 MVC 패턴과 MVP 패턴과 마찬가지로 데이터의 원본을 가지고 있는 역할이다. 2. ViewMVVM에서의 View 역시 사용자에게 보여지고 입력을 받는 역할이다. 3. ViewModel그렇다면 View Model은 무엇일까? ViewModel은 MVP에서의 Presenter와 같이 View와 Model의 연결다리 역할을 해준다.마..

[스터디] MVP 패턴에 대한 설명과 사용법

저번 시간에는  MVC 패턴에 대해 배웠으니 이번 시간에는 MVP 패턴에 대해서 알아보도록 하자.   지난 시간 MVC 패턴에 대해서 간단하게 복습을 해보도록 하자.MVC 패턴은 Model - View - Controller 패턴으로 View로 부터 데이터를 Controller에 전달받아서 Controller는 그 데이터를 가공 처리하여 원본인 Model에 보낸다고 하였다. 그리고 중요한 것은 데이터가 출력할 때는 들어온 순서의 역방향이 아니라 Model -> View로 데이터를 내보낸다고 하였다. 이 때 또 중요한 것이 View가 Model을 참조하여 Model의 데이터가 변화할 때마다 View는 콜백을 받아 데이터를 내보낸다고 하였다.  - 복습 끝 - 1. MVP 패턴이란저번시간에 MVC를 배울 때..