유니티에서 게임 개발을 하면서 다양한 데이터를 관리하고 조작하는 일은 필수적입니다. 이때 배열을 사용하게 되는데, 이는 여러 데이터를 효율적으로 저장하고 관리할 수 있도록 도와줍니다. 1. Array 배열은 동일한 타입의 여러 요소를 순서대로 저장합니다. 배열의 크기는 생성 시 정해지며, 변경할 수 없습니다. 따라서 배열을 사용할 때는 저장하려는 데이터의 개수를 미리 알고 있어야 합니다. 배열 첫 번째 요소의 인덱스는 0, 두 번째 요소의 인덱스는 1, 세 번째 요소의 인덱스는 2, ...이러한 순서로 부여됩니다. 배열의 구조는 아래와 같습니다. 타입 : 배열에 저장할 데이터의 타입입니다. (ex : int, float, string, GameObject..) 배열 이름 : 배열의 이름입니다. 변수 이름..
반복문이란? 반복문은 게임 개발 시 자주 사용되는 프로그래밍 구조 중 하나입니다. 반복문은 특정 조건이 만족될 때까지 또는 지정된 횟수만큼 코드 블록을 반복 실행하도록 합니다. 이는 게임 개발에서 다양한 상황에서 활용될 수 있습니다, 예를 들어, 적들을 생성하거나, 인벤토리 아이템을 검사하거나, 플레이어가 특정 조건을 충족할 때까지 이벤트를 반복하는 등의 작업을 수행할 때 유용합니다. 1. for 반복문 for 반복문은 가장 많이 사용되는 반복문 중 하나입니다. for 반복문은 반복의 횟수가 명확할 때 주로 사용됩니다. for 반복문은 다음과 같은 구조를 가지고 있습니다. 초기화 : 반복문이 시작될 때 딱 한 번 실행되는 코드입니다. 조건 : 반복문이 실행될 때마다 검사하는 코드입니다. 조건이 true일..
1. if 문 구조 C#에서 가장 기본적인 조건문은 if 문입니다. if 문은 조건이 참일 때 실행되는 구문입니다. 아래는 if 문의 구조입니다. 코드에서 조건식은 참 또는 거짓을 반환하는 식(expression)입니다. 조건식이 참이면 중괄호 '{}' 내부의 코드가 실행되고, 거짓이면 실행되지 않습니다. if (조건식) { // 조건이 참일 때 실행할 코드 } 아래는 유니티에서 간단한 if 문 사용 예시입니다. 플레이어의 체력(playerHealth)이 특정 수준 이하로 떨어졌을 때 경고 메시지를 출력하는 코드입니다. 해당 코드에서는 체력이 20 이하라면, 콘솔에 "Warning: Low health!"라는 메시지가 출력되는 코드입니다. public int playerHealth = 100; // 플레..
1. 접근 지정자와 접근자의 기본 이해 1.1 접근지정자 or 접근제어자(Access Modifiers)의 개념 설명 유니티에서 사용되는 접근지정자는 클래스 멤버의 접근 수준을 정의하는데 사용됩니다. 각 접근 제한자는 클래스, 변수, 메서드 및 다른 멤버의 가시성과 접근성을 다르게 설정합니다. 여기서 클래스 멤버란 변수, 메서드(함수), 프로퍼티, 이벤트 등을 의미합니다. 다음은 각각의 접근 제한자에 대한 설명입니다. public : 어떤 클래스에서든 접근할 수 있습니다. public 멤버는 어디서든, 즉 같은 어셈블리(프로젝트) 내부 또는 다른 어셈블리에서도 접근할 수 있습니다. private : 오직 같은 클래스 내부에서만 접근할 수 있습니다. 다른 클래스에서는 접근할 수 없습니다. private은 ..
1. Unity Editor Interface Unity Editor는 유니티 엔진의 주요 개발 환경으로, 게임과 같은 콘텐츠를 만들기 위한 툴입니다. Unity Editor를 사용하여 3D 및 2D 게임 환경을 시각적으로 구성하고, 오브젝트를 배치하고, 스크립트를 적용하고, 게임을 테스트하고, 빌드할 수 있습니다. Unity Editor에는 6개의 주요 창이 있습니다. Scene View, Game View, Hierarchy, Inspector, Project, Console 입니다. 이 창들은 아래 이미지와 같은 기본형태를 가지고 있지만 사용자가 편하게 레이웃을 변경할 수도 있습니다. 1.2 프로젝트(Project) 창 프로젝트 창은 유니티에서 프로젝트에 포함된 모든 에셋을 보여주는 창입니다. 이 ..
1. 차원에 따른 좌표계 1.1. 1차원 좌표계 1차원 좌표계는 실질적으로 직선 상의 위치를 나타냅니다. 이 좌표계는 단일 축, 종종 x축이라고 부르는 값에 따라 결정됩니다. 가장 단순한 형태의 이 좌표계에서는, 단일 수치(스칼라) 값으로 표현됩니다. 예를 들어, 온도 변화를 측정하는 것은 1차원 좌표계에서 이루어질 수 있습니다. 가령 어떤 곳의 기온이 낮부터 늦은 밤까지 어떻게 변하는지 보려면, 당신은 시간(1차원)에 따른 온도(측정 값)을 추적하면 됩니다. 1.2. 2차원 좌표계 2차원 좌표계는 평면좌표계라고도 하며, 점들은 두 개의 값을 갖습니다. 값은 x와 y로 표현되며, 각각 수평축과 수직축을 나타냅니다. 예를 들어 당신이 지도를 사용하여 특정 도시의 위치를 찾는다고 할 때, 도시의 위치는 지도..
1. 유니티 생명 주기란? 컴포넌트들과의 상호작용 그리고 사용자 입력에 대한 반응들을 통해 오브젝트를 제어 할 수 있다고 했습니다. 이러한 상호작용과 반응은 순차적이고 구조화된 방식으로 이루어집니다. 이를 가능하게 하는 것이 바로 유니티의 생명 주기(Life-cycle) 입니다. 이는 객체가 생성되고 활성화되며, 업데이트되고, 종료되는 과정을 의미합니다. 이 생명주기에는 여러 이벤트 메서드가 존재하며, 이를 통해 게임 오브젝트의 동작을 제어할 수 있습니다. 아래 이미지는 유니티의 생명 주기의 흐름도를 보여줍니다. 생명 주기는 주요 이벤트 메서드들로 구성되며, 각 메서드는 필요한 각 단계에서 호출됩니다. 1.1 Awake() Awake()는 게임 오브젝트가 비활성 상태에서도 호출되며, 씬(Scene)이 로..
1. Unity 게임 엔진 유니티 게임 엔진은 기본적으로 컴포넌트 기반 객체지향 디자인 원칙을 따르며, 그래픽스 렌더링, 물리 엔진, 사운드 처리 등 다양한 기능을 기본으로 제공합니다. 이러한 기능들은 모두 컴포넌트의 형태로 구성되며, 각각의 게임 오브젝트에 붙여 사용할 수 있습니다. (컴포넌트란 게임 오브젝트의 기능과 속성을 구현하는 기본 단위입니다.) 쉽게 말하면 게임을 조립해서 만드는 컨셉이라고 할 수 있습니다. 아래 그림은 유니티 에디터 모습이며, Cube라는 게임 오브젝트가 Scene에 배치된 모습입니다. 여기서 Cube라는 오브젝트는 Transform, Mesh Renderer, Box Collider 등과 같은 컴포넌트를 가지고 있습니다. 1.1 컴포넌트 방식 컴포넌트 방식은 게임 오브젝트에..
유니티 Script를 작성하다 보면 숫자로 된 문자열을 정수형 혹은 실수형으로 정수형, 실수형을 문자열로 변경해야 하는 경우가 생깁니다. 이렇게 자료형을 변경하는 것을 형 변환이라고 합니다. 묵시적 형 변환과 명시적 형 변환 묵시적 형 변환은 형 변환을 할때 값의 손실이 없는 경우 사용하는 방식으로 정수 값을 실수 값으로 바꾸는 경우가 대표적입니다. 묵시적 형 변환의 경우는 특별한 코드 작성 없이 변환을 원하는 변수에 대입만 해주면 됩니다. 명시적 형 변환은 데이터 손실이 있는 경우 위험을 감수하고 형을 변환하는 방식입니다. 실수 값을 정수로 변경하는 경우가 대표적입니다. 명시적 형 변환의 경우는 형 변환을 위해서는 형 변환할 변수 앞에 자료형을 입력해 줘야 합니다. 만약 float를 int로 변경해야 ..
사칙연산 유니티에서 사칙연산은 우리가 유치원, 초등학교 때 배우는 그 사칙연산이다. 덧셈, 뺄셈, 곱하기, 나누기는 모두 알고 있는 것처럼 직관적으로 사용이 가능하다. 여기서 우리가 생소한 사칙연산은 % 이다. 여기서 % 는 나눗셈 후 나머지를 반환하는 연산이다. public class NewBehaviourScript : MonoBehaviour { int a = 4; int b = 2; int c; void Start() { c = a + b; // 덧셈 Debug.Log(c); c = a - b; // 뺄셈 Debug.Log(c); c = a * b; //곱셈 Debug.Log(c); c = a / b; //나눗셈 Debug.Log(c); a = 5; b = 2; c = a % b; //나머지 De..