프리팹 ( Prefab )
·
🧊Unity Basic/프리팹
프리팹 ( Prefab )장난감 공장에서 장난감 로봇을 생산한다고 가정한다.로봇이라는 큰 단위로 묶여있지만 , 이 로봇이 움직이기 위해서는 머리 , 몸통 , 팔 , 다리 등으로 세분화된 요소로 나눠야한다.또한 설계도가 존재하며 이는 대량 생산을 위한 하나의 데이터가 된다.정성스럽게 만든 오브젝트를 동일하게 여러개 배치해야 할 경우이 설계도를 미리 작성해 놓고 필요할 때마다 유니티에게 대량 생산하게 만들어야 한다.프리팹과 인스턴스의 차이는 붕어빵틀과 붕어빵으로 비유할 수 있다.붕어빵은 붕어빵틀에 각인된 형태대로 구워진다. 지느러미가 하나 더 생기거나 , 꼬리가 두 개가 되는 경우는 없다.프리팹은 붕어빵틀과 같다. 때문에 프리팹을 만들 때에는 인스턴스가 어떤 형태를 갖게 될지 생각하며 만들어야 한다. 프리..
생성과 파괴 ( Instantiation & Destruction )
·
🧊Unity Basic/게임오브젝트
생성과 파괴 ( Instantiation & Destruction )유니티 엔진은 마법도구가 아니다.PC에서 구동되며 , 프로그래머는 PC 가 제공하는 자원을 효율적으로 다룰 수 있어야 한다.사용자가 간단히 다룰 수 있는 오브젝트조차 메모리와 연산에 대한 효율을 생각해야 한다.효율적이지 않다면 대안을 사용할 수 있어야 한다. 프로그래밍에서의 생성과 파괴는 메모리를 할당하고 , 해제하는 것과 같다.이때 데이터가 어떤 메모리에 올라가고 , 각각 메모리마다 어떤 특성을 가지고 있는지 아는 것이 중요하다.특히 힙 ( Heap ) 메모리에 데이터가 올라가고 내려가는 것은 큰 연산을 필요로 한다.최적화를 위해서 왜 연산이 발생하는지 , 어떻게 막을 수 있는지 알아야 한다. 유니티에서 대부분의 게임 오브젝트는 씬 (..
애트리뷰트 ( C# Attribute )
·
⭐C Sharp/00. 문법
애트리뷰트 ( Attribute )코드 ( 클래스 , 메서드 , 필드 등 ) 에 부가 정보를 붙이는 메타데이터 시스템이다.이 코드가 어떤 성격을 가지고 있다는 설명서나 라벨을 붙이는 개념이다. 예시이 메서드는 오래된 버전이다.이 클래스는 직렬화 가능하다.이 필드는 저장하지 마세요.처럼 컴파일러나 런타임이 참고할 수 있는 정보를 표시할 때 쓰인다. 작동 원리C# 에서는 모든 애트리뷰트가 System.Attribute 클래스를 상속받는 클래스 객체이다.[ ] 대괄호 안에 작성해서 코드 요소 위에 붙이면 컴파일러가 이 정보를 메타데이터로 저장한다.리플렉션 ( Reflection )으로 읽을 수 있게 된다.주석처럼 보이지만 실제로 실행 시 읽을 수 있는 데이터이다.[Obsolete("이 메서드는 더 이상 사용..
Attribute ( 애트리뷰트 )
·
🧊Unity Basic/애트리뷰트
Attribute ( 애트리뷰트 )C# 이나 Unity 에서 속성 또는 메타데이터를 코드 요소 ( 클래스 , 메서드 , 변수 등 )에 추가 정보로 표시할 때 사용하는 기능이다.Attribute ( 애트리뷰트 ) 는 코드에 의미를 추가하는 주석 같은 존재프로개름의 클래스 , 메서드 , 필드 , 프로퍼티 등에 추가적인 정보를 부여하는 메타데이터코드 자체에는 영향을 주지 않는다.컴파일러나 런타임 , 혹은 다른 툴이 이 정보를 읽고 동작을 다르게 하도록 지시하는 역할을 한다.단순한 주석이 아니라 , 실제 코드 안에서 읽히고 활용되는 구주화된 데이터이다.여기서는 Unity 에서의 애트리뷰트의 개념에 대해 정리한다. Unity 에서의 Attribute코드에 부가적인 정보나 지시문을 붙인다.Unity 에디터나 엔진이..
오브젝트 ( GameObject )
·
🧊Unity Basic/게임오브젝트
오브젝트 ( GameObject )게임을 플레이 하다 보면 "오브젝트" 라는 명층을 한 번쯤은 들어봤을 법한 용어이다.주로 게임에서는 아이템을 지칭하거나 맵 상에서 상호작용 할 수 있는 요소를 지칭하는 용어로 쓰인다.하지만 게임 개발자에게 오브젝트란 조금 더 넓은 범위에 속하는 개념이다. 유니티에서 오브젝트는 게임 세상에 존재하는 모든 것의 기본 단위이다.쉽게 말하면 유니티 세계 안의 모든 것들은 전부 게임오브젝트이다 라고 할수 있다. 모든 물체는 기능과 형태를 가진다.물체라는 것은 자신에게 주어진 기능과 성질을 간직하고 있는 매개체라고 할수 있다.유니티는 가상 공간에서 게임 오브젝트에 기능과 성질을 부여하기 위해 오브젝트에 컴포넌트라는 개념을 사용한다. 오브젝트는 유니티 씬 ( Scene ) 안에서 존..
251014
·
📖TIL
오브젝트오브젝트는 물체 , 대상 , 잭체를 의미우리가 세상을 바라볼 때 인식하거나 다룰 수 있는 구체적인 것 예시 : 의자 , 책상 , 컵 같은 물리적 사물Unity 에서의 Object유니티에서 오브젝트라고 하면 보통 GameObject 를 의미한다 GameObject = Unity Scene유니티 Scene게임의 한 단계 또는 장면을 구성하는 모든 요소를 담고 있는 파일씬 간의 전환은 SceneManager.LoadScene( ) 함수를 통해 이뤄진다모든 게임 오브젝트가 가지는 공통적인 컴포넌트가 존재한다.모든 오브젝트는 '매개체', 즉 물체라고 볼 수 있다.물체가 가지는 기본적인 특징인 크기, 회전, 위치에 대한 정보를 가지고 있어야 한다. 그렇기에 게임 오브젝트는 Transform 이라는 컴포넌트를..
Enum
·
⭐C Sharp/📌문법 사전
📌Enum ( 열거형 )의미 있는 이름으로 상수값들을 묶어 관리하는 사용자 정의 자료형// 기본 형태enum 열거형이름{ 항목1, 항목2, 항목3}// 사용 예시enum Day { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }Day today = Day.Monday;Console.WriteLine(today); // 출력: MondayConsole.WriteLine((int)today); // 출력: 1 (기본값 0부터 시작)enum Level{ Easy = 1, Normal = 3, Hard = 5}⚠️ 주의enum 의 기본 자료형은 int ( 0 부터 시작 )필요하면 : byte : ..
Array
·
⭐C Sharp/📌문법 사전
📌Array ( 배열 )같은 자료형의 데이터를 하나의 이름으로 묶어서 관리하는 자료구조// 1. 배열 선언자료형[] 배열이름;// 2. 배열 생성 (크기 지정)배열이름 = new 자료형[크기];// 3. 선언과 동시에 생성자료형[] 배열이름 = new 자료형[크기];// 4. 초기화와 동시에 선언자료형[] 배열이름 = { 값1, 값2, 값3 };// 5. 값 접근배열이름[인덱스] = 값;Console.WriteLine(배열이름[인덱스]);⚠️ 주의인덱스는 0 부터 시작배열의 크기는 한번 정하면 변경 불가능존재하지 않는 인덱스에 접근하면 IndexOutOfRangeException 발생배열의 길이는 배열이름.Length 로 확인 가능참조형 ( reference type ) 이므로 new 로 생성 시 힙 ..
값형 ( Value ) vs 참조형 ( Reference )
·
⭐C Sharp/01. 변수
값형 ( Value Type ) vs 참조형 ( Reference Type )1. 값형 ( Value Type )실제 값 자체를 저장하는 타입대표 예시 : int , float , bool , char , struct , enum 등저장 위치 : 스택 ( Stack )특징 : 변수 간 복사시 값이 복제된다.└ 서로 다른 메모리를 가진다 → 한쪽을 변경해도 다른 쪽에 영향이 없다.▼예시 코드int a = 10;int b = a;b = 20;Console.WriteLine(a); // 10a 와 b 는 서로 다른 공간에 저장되어 있다. 2. 참조형 ( Reference Type )데이터의 위치 ( 주소 ) 를 저장하는 타입실제 데이터는 힙 ( Heap )에 저장되고 , 변수는 그 위치를 참조한다.대표 예시..