개발 17

[Unity] NullCheck의 익힘 정도를 굉장히 중요시 여기기에...

저는 평소에 NullCheck는 매우 중요하게 생각했습니다.. 하지만 일일이 요런 식으로 이븐 하지 못한 코드를 계속 사용하기에는 코드를 짜는 시간이 매우 아까웠습니다.그렇기에 저는 아래의 코드를 만들어 넀습니다.using UnityEngine;using System;public static class Util{ public static bool NullCheck(T Value) { if (Value == null) { Type type = typeof(T); Debug.LogError($"{type.ToString()} Is Null"); return false; } return tr..

개발 2024.10.20

[키우기 게임 1일차] 키우기 게임 만들기 시작

현제 18세 인 필자는 학교에서 남는 시간들을 이용해 키우기 게임을 만들고자 한다.만드는 이유는 간단하다 한 번쯤 만들어 보고 싶었기 때문이다. 게임의 UI의 레이아웃은 [캣 히어로]라는 게임을 참고하였다.   사용한 UI는 아래의 UI이다.현재 19.99달러이지만 번들로 구매하여 싸게 구할 수 있었다.1일 차에는 UI와 플레이어가 움직이는 것을 구현하였다.일단 리소스 관리는 Addressables로 관리를 하였고UI_Base 및 UI_EventHandler 를 제작하였다. 아래는 UI_EventHandler 코드이다. using System;using UnityEngine;using UnityEngine.EventSystems;public class UI_EventHandler : MonoBeha..

개발 2024.10.11

[Unity] 스마트한 GetCompoenet 만들기

나는 생각했다. Fun 하고 Cool하며 Sexy하게 GetCompoenet를 해오는 방법을...그리고 생각해 냈다. GetCompoenet를 사용한다는 건 애초에 그 객체에 저 Compoenet가 붙어 있다는 것을 가정한다.그런데 만약 객체에 컴포넌트가 붙어있지 않다면 다시 붙이는 수고를 해야 한다. 그렇기에 생각해 냈다.엄청난 방법을 컴포넌트가 없으면 컴포넌트를 붙이고 가져오는 것이다.  코드는 매우 간단하다. public static T GetOrAddCompoenet(GameObject go) where T : UnityEngine.Component { if(go == null) return null; T compoent = go.GetCompon..

개발 2024.10.04

[Unity] 객체 초기화 상태 관리

게임을 만들다 보면 객체를 초기화하는 함수를 작성할 때가 있습니다. 하지만 가끔 객체가 초기화가 여러번 호출될 때가 존재합니다. 그것을 보안하기위해 요즘에는 아래의 코드를 사용합니다.using UnityEngine;public class InitBase : MonoBehaviour{ private bool _init = false; //초기화 확인 public virtual bool Init() //초기화 함수 { if (_init) //초기화가 됬다면 return false; //false 반환 _init = true; // 초기화 완료 return true; // true 반환 } private void Awake()..

개발 2024.10.01

C++ 템플릿

템플릿이란 형판, 형틀, 어떤 특정한 모양을 만들기 위해 만들어진 틀 이란 뜻을 가진다. 프로그래밍에서의 템플릿 알아서 잘 딱 깔끔하고 센스있게 변수타입을 바꾸어주는 틀이다. 템플릿 종류 함수 템플릿 클래스 템플릿 함수 템플릿 선언 예시 template T Name(T value) { return value; } 클래스 템플릿 선언 예시 template class MyCar { public: private: }; 템플릿 사용 예시 #include using namespace std; template T Name(T value); int main() { cout

개발 2024.04.19

시간 복잡도

계산 복잡도 이론에서 시간 복잡도는 문제를 해결하는 데 걸리는 시간과 입력의 함수 관계를 가리킨다. 좋은 알고리즘이란? 실행시간이 적으며 결과가 정확한 알고리즘 복잡도 분석 공간 복잡도 분석 : 수행 시 필요로 하는 메모리 공간 분석 시간 복잡도 분석 : 수행 시간 분석 수행 시간 : 최악의 경우 입력에 대한 기본 연산(산술, 대입, 비교, 이동)의 횟수 빅오 표기법 알고리즘의 효율성을 표기하는 표기 법 이다. 특징 빅오 표기법의 가장 큰 특징은 상수항을 무시하는 것이다. 예를 들어 O(2N^2) 이라면 O(N^2)으로 표기해야 한다. 성능

개발 2024.04.16

C++ 클래스

클래스 메서드와 속성을 가지고 있는 구조체 객체 클래스로 생성한 인스턴스 접근제한자 private 멤버 클래스 안에서만 protected 멤버는 클래스 안과 상속된 클래스에서 public 멤버는 어디서나 사용될 수 있다. 생성자1. 생성자는 오직 한 번만 실행된다. 1. 생성자는 오직 한 번만 실행된다. 2. 생성자 함수의 이름은 클래스 이름과 동일하게 작성되어야 한다. 3. 생성자 함수의 원형에 리턴 타입을 선언하지 않는다. 4. 생성자는 매개변수를 달리하여 중복 가능하다.

개발 2024.04.02

C++ vector

vector 배열의 단점을 보완한 컨테이너. 실행 시간 크기를 변경할 수 있는 동적 배열. 추가되는 요소의 개수에 따라서 자동적으로 크기가 조절됨 배열 = 가변길이 배열 vector 동작원리 1. 여유분을 두고 메모리를 할당한다. 2. 유분이 꽉찼다면 기존의 영역을 버린다. 3. 기존의 크기에서 1.5배 사이즈로 새로운 영역을 만든다. 4. 새로운 영역으로 옮겨간다. 사용법 헤더파일 vector를 선언한다. #include 선언 vector 이름 (크기); vector iv; 멤버함수 사용 예 0~9 까지 출력하는 코드 #include #include using namespace std; int main() { vector v(10); for (int i = 0; i < 10; i++) { v[i] = ..

개발 2024.03.30
반응형