UGUI
·
🧊Unity Basic/UGUI
유니티 사용자 인터페이스 ( Unity Graphical User Interface )게임 컨텐츠는 대부분 유저의 눈에 들어오는 정보량이 많은 컨텐츠 중 하나이다.단순히 게임 내에서 돌아다니는 플레이어 , 몬스터 등의 위치나 모션에 대한 정보 뿐 아니라 간단한 도형과 텍스트를 통해 플레이어가 선택해야 할 선택지와 인지하고 있어야 할 정보를 전달해야 한다.그렇기 때문에 UI 는 게임에 없어서는 안 될 중요한 포인트 중 하나이다.UGUI 는 유니티에서 사용자 인터페이스를 만들기 위한 2D UI 시스템이다.게임 내에서 보이는 버튼 , 체력바 , 점수표시 , 미니맵 같은 화면 위의 그래픽 요소를 만드는 시스템이다.구성요소설명Canvas모든 UI 의 기준 좌표 공간. 모든 UI 는 반드시 Canvas 아래에 존재..
Observer Pattern
·
🧊Unity Basic/디자인패턴
옵저버 패턴 ( Observer Pattern )배고픈 개발자가 패스트푸드점에 가서 햄버거를 주문했다고 가정한다.주문을 마친 후 , 제일 먼저 떠오르는 질문은 " 내 주문은 언제 나오죠? "배고픈 개발자는 그 답을 얻기 위해 카운터 근처를 서성인다.조리대 쪽을 기웃거리며 , 직원이 봉투를 들 때마다 혹시 내 건가 싶어 고개를 빼보기도 한다.하지만 이건 꽤 번거로운 일이다. 이 방식이 바로 Polling ( 폴링 ) 이다.내 주문이 준비되었는지 스스로 계속 확인하는 방식을 말한다.이건 매번 Update( ) 함수에서 "햄버거 다 됐나?" 를 체크하는 것과 같다.주문이 아직인데도 계속 확인하니 , 사람도 피곤하고 시스템도 낭비가 생긴다. 그런데 요즘은 대부분의 매장에서 주문을 마치면 번호표나 진동벨을 준다...
251021
·
📖TIL
UGUIUnity Graphical User InterfaceObserver Pattern
Singleton 과 Generic
·
🧊Unity Basic/디자인패턴
싱글톤과 제네릭 사용시 주의점 ( Singleton Pattern , Generic )싱글톤 ( Singleton ) 과 제네릭 ( Generic ) 조합은 이론상 편리해보이지만 Unity 나 C# 환경에서는 여러 가지 구조적 문제와 오용 가능성 때문에 일반적으로 권장되지 않는다. 아래에 그 이유를 단계별로 정리한다. 1. 목적이 충돌한다싱글톤의 목적 : 전역에서 단 하나의 인스턴스만 유지제네릭의 목적 : 여러 타입에 대해 재사용 가능하게 만든다싱글톤은 하나만 존재해야 하는데 , 제네릭은 타입마다 다르게 존재하게 만든다.결과적으로 타입별 싱글톤 여러 개가 생기는 구조가 되어 , 본래 싱글톤의 전역 통일성 ( Global Uniqueness ) 이 깨진다.public class Singleton wher..
Singleton Pattern
·
🧊Unity Basic/디자인패턴
싱글톤 패턴 ( Singleton Pattern )게임 내에서 파괴되지 않고 지속적으로 존재하며 데이터를 관리해줘야 하는 객체가 필요하다.그리고 그 객체에 조금 더 편하게 접근할 수 있다면 게임을 제작하기 더 편해질 수 있다.싱글톤 패턴은 위의 의문들에 대한 해답을 제공한다.프로그램 내에서 단 하나의 객체만 존재하는 컨트롤 타워로서 프로그램의 시작부터 종료시까지 생존한다.그렇기 때문에 데이터 관리에 있어 이점을 가진다. 싱글톤 패턴을 쓰지 않을수가 없을 정도로 필수적인 디자인 패턴이다하지만 유용하고 편리하면서도 단점이 많은 아이러니한 패턴이다.싱글톤 패턴은 게임 구현에서 가장 많이 사용되는 디자인 패턴중 하나이다.단일의 인스턴스와 전역적인 접근을 제공하며 이러한 특성은 장점과 동시에 단점으로 작용한다.클..
유니티 액션 ( Unity Action )
·
🧊Unity Basic/코루틴&이벤트
유니티 액션 ( Unity Action )유니티 액션은 C# 델리게이트 ( delegate ) 의 일종으로 , 함수를 저장하고 호출할 수 있는 메서드 포인터 같은 개념이다.유니티에서 자주 사용하는 이유는 이벤트 시스템 , UI 버튼 , 콜백 ( Callback ) 등을 간단하게 연결하기에 아주 유용하기 때문이다.Action 은 매개변수를 받을 수 있는 void 형 delegate 이다.리턴값이 없고 인자를 0개 ~ 16개까지 받을 수 있는 제네릭 델리게이트 타입이다.Action myAction; // 매개변수 X, 반환 XAction myActionInt; // int 하나 매개변수Action myActionTwo; // int, string 두 개 매개변수Action 은 System 네임스페이스에 정의..
유니티 이벤트 ( Unity Event )
·
🧊Unity Basic/코루틴&이벤트
유니티 이벤트 ( Unity Event )C# 프로그래밍 언어에는 델리게이트와 이벤트가 있다.델리게이트는 처음 접한다면 사용 방법이 까다롭고 어렵지만 한번 이해하고 난 후엔 편리하게 사용할 수 있다.유니티 이벤트는 델리게이트와 비슷한 용도로 사용할 수 있지만 유니티엔진에서 더 편리하게 사용할 수 있는 기능이다.유니티 이벤트는 특정한 일이 발생했을 때 , 다른 함수들을 자동으로 실행하도록 연결해주는 기능이다.버튼 클릭 시 실행할 함수를 연결 , 적이 죽을 때 효과음 재생 같은 상황에서 자주 쓰인다. Unity Event 는 C# 의 이벤트 ( delegate ) 개념을 Unity 에디터에서도 시각적으로 사용할 수 있게 만든 클래스이다.코드로만 연결하지 않아도 인스펙터 ( Inspector ) 창에서 함수를..
251020
·
📖TIL
Invoke 로도 코루틴과 비슷하게 구현 가능하다StopCoroutine 이 아닌 StopInvoke 로 끊어줘야 한다싱글톤 Singleton Pattern 싱글톤과 제네릭은 같이 사용하면 좋지 않다제네릭으로 인해 디버깅이 더 어려워진다싱글톤을 제네릭으로 묶으면 모든 클래스가 같은 부모 타입을 상속받기 때문에스택 트레이스나 인스펙터에서 어디서 Instance 가 생성되었는지 추적하기가 힘들다Delegate , event
Interpolation
·
🧊Unity Basic/수학&보정함수
보간법 ( Interpolation )두 개 이상의 값 사이의 중간값을 계산하거나 부드럽게 이어주는 과정을 말한다게임이나 그래픽 , 물리 시뮬레이션 등에서 자연스러운 움직임 , 색 변화 , 회전 , 위치 이동 등을 만들때 자주 사용한다. Interpolation 은 기존 데이터나 상태 사이의 연속적인 변화 ( transition ) 를 만들기 위한 수학적 계산 방법이다.A 위치에서 B 위치로 캐릭터가 순간이동하지 않고시간에 따라 점점 이동하는 부드러운 움직임을 만드는 게 보간의 대표적인 사례이다 종류종류설명예시Linear Interpolation ( Lerp )두 값 사이를 직선 비율로 계산Mathf.Lerp(0, 10, 0.5) → 5Spherical Interpolation ( Slerp )회전(Q..