No cloud project ID was found by the Analytics SDK 오류 해결 방법 No cloud project ID was found by the Analytics SDK.This means Analytics events will not be sent. Please make sure to link your cloud project in the Unity editor to fix this problem. 오류가 나타나도 실행에 문제는 없다. 필자는 해당 오류가 2021.3.15f1 3D URP 버전에서 프로젝트를 생성하거나, 다운로드 받은 프로젝트를 열 때 발생했다. 해당 오류는 Unity 프로젝트를 사용하기 위해 프로젝트 ID를 연결하라는 오류이다. 오류 해결 방법은 상당히 간..
1. www 클래스 WWW 클래스는 유니티에서 제공하는 간단한 방법으로 웹 서버와 통신할 수 있게 해주는 클래스입니다. 웹 페이지의 데이터를 다운로드하거나, 이미지 등을 불러올 때 사용됩니다. 현재 WWW는 유니티에서 권장하지 않고 있습니다. 2. UnityWebRequest 클래스 UnityWebRequest 클래스는 유니티에서 HTTP 통신을 할 수 있게 해주는 클래스입니다. GET, POST 등 다양한 HTTP 요청 방식을 지원하며, 파일 다운로드, 업로드와 같은 작업에도 사용됩니다. 유니티에서 WWW를 사용하기 보다는 UnityWebRequest를 사용하는 권장합니다. 2.1 GET 방식 GET 방식은 주로 서버로부터 정보를 조회하기 위해 사용되는 메서드입니다. 데이터를 요청할 때 필요한 매개변수..
유니티에서 게임 개발을 하면서 다양한 데이터를 관리하고 조작하는 일은 필수적입니다. 이때 배열을 사용하게 되는데, 이는 여러 데이터를 효율적으로 저장하고 관리할 수 있도록 도와줍니다. 1. Array 배열은 동일한 타입의 여러 요소를 순서대로 저장합니다. 배열의 크기는 생성 시 정해지며, 변경할 수 없습니다. 따라서 배열을 사용할 때는 저장하려는 데이터의 개수를 미리 알고 있어야 합니다. 배열 첫 번째 요소의 인덱스는 0, 두 번째 요소의 인덱스는 1, 세 번째 요소의 인덱스는 2, ...이러한 순서로 부여됩니다. 배열의 구조는 아래와 같습니다. 타입 : 배열에 저장할 데이터의 타입입니다. (ex : int, float, string, GameObject..) 배열 이름 : 배열의 이름입니다. 변수 이름..
유니티 개발에서 C#의 ref와 out 키워드는 함수 인자를 다룰 때 중요한 역할을 합니다. 이 두 키워드를 이해하고 올바르게 사용하는 것은 유니티 게임 개발의 효율성을 크게 향상시킬 수 있습니다. 이 글에서는 ref와 out 키워드의 개념을 설명합니다. 1. ref 키워드 ref 키워드는 메서드에 변수를 참조로 전달할 때 사용됩니다. 이를 통해 메서드 내에서 인자의 값을 변경하면, 그 변경사항이 메서드를 호출한 곳에서도 반영됩니다. 즉, ref를 사용하면 메서드가 인자로 받은 변수 자체를 직접 수정할 수 있습니다.(참조로 전달한다는 것은 변수의 실제 메모리 위치를 전달한다는 의미로, 메서드 내에서 변수의 값을 변경하면 원본 변수에도 그 변경사항이 반영됩니다.) 아래 예제에서 보면 TakeDamage 메..
유니티(Unity)에서 new 키워드를 사용하는 이유는 객체 지향 프로그래밍(OOP)의 핵심 원리 중 하나인 인스턴스화를 구현하기 위함입니다. new 키워드는 새로운 객체를 생성하고, 해당 객체의 메모리를 할당하는 데 사용됩니다. 메모리와 객체 생성 프로그래밍에서 메모리는 작업 공간으로 이해할 수 있습니다. 이 작업 공간에 데이터를 저장하고, 필요할 때마다 접근하여 사용합니다. new 키워드의 사용은 메모리 상에 새로운 객체, 즉 인스턴스를 생성한다는 의미입니다. 예를 들어, Dog라는 클래스의 인스턴스를 생성하기 위해 new Dog()라고 작성하면, 유니티는 메모리 상에 Dog 객체를 위한 공간을 할당하고, 그 객체를 사용할 수 있게 됩니다. 이 과정에서 dog라는 변수에 객체의 메모리 주소가 저장되며..
반복문이란? 반복문은 게임 개발 시 자주 사용되는 프로그래밍 구조 중 하나입니다. 반복문은 특정 조건이 만족될 때까지 또는 지정된 횟수만큼 코드 블록을 반복 실행하도록 합니다. 이는 게임 개발에서 다양한 상황에서 활용될 수 있습니다, 예를 들어, 적들을 생성하거나, 인벤토리 아이템을 검사하거나, 플레이어가 특정 조건을 충족할 때까지 이벤트를 반복하는 등의 작업을 수행할 때 유용합니다. 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. UI 역시 메시이다. - 3D 그래픽에서 신경써야 하는 병목이 모두 똑같이 적용된다. Draw Call, Overdraw 등 드로우 콜(Draw Call) : 그래픽스 API가 GPU에게 화면에 무언가를 그리라고 명령하는 것, 드로우 콜이 많을 수록 CPU와 GPU 간의 통신 부하가 증가하여 게임의 렌더링 성능이 저하될 수 있음, 따라서 게임 개발에서는 도로우 콜의 수를 줄이기 위해 다양한 최적화 기법을 사용 오버드로우(Overdraw) : 화면의 특정 픽셀이 한 프래임 내에서 여러 번 렌더링되는 현상을 말함, 보통 여러 오브젝트가 같은 화면 공간을 공유할 때 발생하며, 특히 뒤에 있는 오브젝트가 앞에 있는 오브젝트에 의해 가려지는 경우에도 뒤에 있는 오브젝트가 렌더링되어 자원을 낭비하게 됨 - C..
1. Onnx란? ONNX(Open Neural Network Exchange)는 딥러닝 모델을 표현하기 위한 개방형 형식입니다. Microsoft와 Facebook이 주도하여 개발하였고, 이 형식은 여러 딥러닝 프레임워크에서 모델을 공유하기 위한 표준입니다. ONNX는 여러 프레임워크에서 딥러닝 모델을 생성하고 훈련시킬 수 있도록 하며, 각각의 프레임워크가 제공하는 도구 및 기능을 활용할 수 있습니다. ONNX 형식을 사용하여 모델을 다른 프레임워크로 쉽게 이동할 수 있습니다. 예를 들어, 연구자는 PyTorch에서 모델을 프로토타입하고 개발할 수 있으며, ONNX를 통해 모델을 TensorFlow 또는 Caffe2로 변환하여 서버에서 배포할 수 있습니다. ONNX는 계산 그래프(computation ..
1. 접근 지정자와 접근자의 기본 이해 1.1 접근지정자 or 접근제어자(Access Modifiers)의 개념 설명 유니티에서 사용되는 접근지정자는 클래스 멤버의 접근 수준을 정의하는데 사용됩니다. 각 접근 제한자는 클래스, 변수, 메서드 및 다른 멤버의 가시성과 접근성을 다르게 설정합니다. 여기서 클래스 멤버란 변수, 메서드(함수), 프로퍼티, 이벤트 등을 의미합니다. 다음은 각각의 접근 제한자에 대한 설명입니다. public : 어떤 클래스에서든 접근할 수 있습니다. public 멤버는 어디서든, 즉 같은 어셈블리(프로젝트) 내부 또는 다른 어셈블리에서도 접근할 수 있습니다. private : 오직 같은 클래스 내부에서만 접근할 수 있습니다. 다른 클래스에서는 접근할 수 없습니다. private은 ..