ref
·
⭐C Sharp/10. 참조
C# ref 완전 정리ref 는 값이 저장된 위치 ( 메모리 주소 ) 를 직접 전달하는 키워드이다.호출자가 가진 변수를 복사하지 않고 그 원본을 그대로 함수나 다른 변수에게 넘긴다수정 가능 : 피호출자가 값을 바꾸면 호출자 변수도 함께 바뀐다복사 비용 절감 : 특히 큰 struct ( 값 형식 ) 전달 시 복사 오버헤드 감소out : 반드시 초기화해서 돌려주기 ( 입력은 의미 없다 )in : 읽기 전용 ( by - ref 로 가져오되 수정 금지 , 복사 최소화 )ref : 읽고 / 쓰고 모두 가능 ( 원본 수정 ) 1. 매개변수로 사용void Foo(ref int x) { x += 10; }int a = 5;Foo(ref a); // a == 15호출부에도 ref 가 필요하다 ( 둘 다 작성해야 한다 ..
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..
메모리 구조와 작동 원리
·
🖥️Computer Science
컴퓨터 메모리 구조와 작동 원리컴퓨터의 메모리 ( RAM ) 는 CPU 가 작업할 데이터를 일시적으로 저장하는 주기억장치이다.주소 ( adderss ) 에 따라 데이터가 저장되는 셀 ( cell ) 들의 배열로 구성되어 있다.메모리의 계층 구조는 존 폰 노이만 ( John von Neumann ) 이 저술한 "컴퓨터와 뇌" 에서 처음으로 언급되었다.지난 시간에 CPU 의 구조까지 알아봤으니 그 연장선으로 컴퓨터의 메모리 구조와 작동 원리를 깊이 있게 정리한다.컴퓨터의 3대 핵심 구성요소컴퓨터는 크게 CPU ( 연산 ) , Memory ( 기억 ) , I / O ( 입출력 ) 로 이루어져 있다.CPU 가 두뇌라면 메모리는 단기 기억장치 역할을 한다.구성 요소주요 역할예시CPU ( Central Proces..
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 ) 창에서 함수를..