[Unity] Builder패턴으로 팝업 시스템 구현
Unity/C# 2023. 2. 16. 14:41[Unity] Builder패턴으로 팝업 시스템 구현

개요 GoF 디자인 패턴중 생성 패턴에 해당하는 Builder패턴을 이용하여 팝업UI 시스템을 구현한 것을 기록한다. GoF디자인 패턴은 아래 블로그에 자세하게 설명해주셨다. [Design Pattern] GoF(Gang of Four) 디자인 패턴 - HERSTORY 디자인 패턴이란 디자인 패턴은 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할때 참조할 수 있는 전형적인 해결 방식을 말한다. 디자인 패턴을 통해 설계 문제, 해결 방 4z7l.github.io Builder패턴은 동일한 프로세스를 거쳐 다양한 구성의 인스턴스를 만드는 방법이다. 만들어야할 객체가 다른옵션 한두개만 가지고있다면 생성자 혹은 따로 Init()함수를 만들어서 파라미터로 옵션을 넘겨줘도 될것이다. 하지만, 옵..

[Unity] GoogleSheetsToUnity에셋 활용 동적 스크립터블 오브젝트 생성기 제작
Unity/C# 2022. 10. 25. 10:13[Unity] GoogleSheetsToUnity에셋 활용 동적 스크립터블 오브젝트 생성기 제작

개요 구글시트에서 데이터를 불러오는 작업을 하던중 데이터를 불러와서 기존 ScriptableObject에 덮어씌우기만 하지말고 있다면 덮어씌우고 없다면 생성하는 시스템을 만들고싶어졌다. 그래서 작업을 진행했고 해당내용을 기록한다. 사용한 에셋 https://assetstore.unity.com/packages/tools/utilities/google-sheets-to-unity-73410?locale=ko-KR Google Sheets To Unity | 유틸리티 도구 | Unity Asset Store Use the Google Sheets To Unity from Greener Games on your next project. Find this utility tool & more on the Unit..

Unity/C# 2022. 10. 4. 21:05[Unity, C#] 오브젝트 풀링

개요 Unity 프로젝트를 처음 생성할 때 꼭 하는 우선순위들이 있다. 1. DoTween에셋 임포트 2. 오딘 인스펙터 에셋 임포트(유료) 3. 오브젝트 풀링 구현 이 글에서는 오브젝트 풀링 구현을 기록할려고 한다. 오브젝트 풀링은 메모리 최적화를 위해 빼놓을 수 없는 시스템이라고 생각한다. Instantiate와 Destroy를 쓸때마다 괜히 죄책감이들고 그렇기 때문에 항상 구현해놓고 시작하는데 이 기회에 블로그에 적어놓을려고 한다. Pool을 관리하는 PoolManager클래스 먼저 풀을 관리하며 Push와 Pop을 해주는 PoolManager 클래스이다. 딕셔너리와 스택으로 풀을 관리하고 Pop을 할때는 오브젝트나 String키값을 인수로 받아서 오브젝트를 꺼내준다. poolableList에는 풀..

Unity/C# 2022. 10. 1. 17:30[Unity, C#] 박스 콜라이더안에 랜덤포인트 구하기

public static Vector3 GetRandomPointInsideCollider(BoxCollider boxCollider) { Vector3 extents = boxCollider.size / 2f; Vector3 point = new Vector3( Random.Range(-extents.x, extents.x), Random.Range(-extents.y, extents.y), Random.Range(-extents.z, extents.z) ) + boxCollider.center; return boxCollider.transform.TransformPoint(point); } Static클래스의 Static함수로 정의하면 어디서든 사용하기 편하다.

Unity/C# 2022. 7. 29. 17:14[C#] Enum에 Contains인지 확인하기, String을 Enum으로 변환하기

// 타겟 Object(String으로도 가능)가 enum에 포함돼있는지 확인하기 Enum.IsDefined(typeof(MyEnum), targetString)) // String을 enum으로 변환하기 MyEnum n = (MyEnum)Enum.Parse(typeof(MyEnum), targetString); Enum.IsDefined 메서드 (System) 지정된 정수 값 또는 문자열로 해당 이름이 지정된 열거형에 있는지 여부를 나타내는 부울을 반환합니다. docs.microsoft.com Enum.Parse 메서드 (System) 하나 이상의 열거된 상수의 이름이나 숫자 값의 문자열 표현을 해당하는 열거형 개체로 변환합니다. docs.microsoft.com

[Unity] Hitbox와 Hurtbox시스템
Unity/C# 2022. 6. 20. 00:37[Unity] Hitbox와 Hurtbox시스템

결과물 영상 Hitbox는 Overlapbox를 통해 충돌을 감지하고 원하는 타이밍에 켜고 끌수있다.(여기선 애니메이션 이벤트로 컨트롤) using System.Collections;using System.Collections.Generic;using UnityEngine;public class Hitbox : MonoBehaviour{    public enum ColliderState    {        Closed,        Open,        Colliding    }    public LayerMask mask;    public Vector3 hitboxSize = Vector3.one;    public Vector3 offset = Vector..

image