Unity 5

[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

[Unity UIToolkit] confirmation modal(확인 대화상자) 만들기

Unity의 UIToolkit을 활용하여 유저가 실수로 작업을 수행하는 것을 방지하는 UI인 확인 대화상자를 만들고자 한다. 우선 하이라이키 창에서 마우스 오른쪽 버튼을 클릭해 [UIToolkit] > [UIDocument]를 생성해 줍니다. 생성된 Document의 이름을 ConfirmationModalUI라고 바꾸겠습니다.UIDocument 컴포넌트에 필수로 넣어줘야 하는 것은 Source Asset으로 앞으로 만들 UI를 저곳에 넣어줄 것입니다.PanelSettings는 레거시 UI의 캔버스 같은 역할로 캔버스에서 ScreenSize를 고정했던 것과 같이 고정해 줍시다.PanelSettings는 Project 파일에서 마우스 오른쪽 버튼을 클릭해 [Create] > [UI Toolkit] > [Pa..

UI개발(Unity) 2024.06.27