본문 바로가기

분류 전체보기

(52)
Unity 64일차 TIL - Unity (2D ItemInventory4_InventoryUIDragAndDrop) (출처 : https://rito15.github.io/posts/unity-study-rpg-inventory/) 위에 링크에 있는 내용을 바탕으로 제작했다. private Inventory inventory;[SerializeField] private ItemTooltipUI itemTooltipUI;[SerializeField] private InventoryPopupUI popupUI;private GraphicRaycaster gr;private PointerEventData ped;private List rrList;private ItemSlotUIs pointerOverSlot;private ItemSlotUIs beginDragSlot;private Transform beginDragIco..
Unity 63일차 TIL - Unity (2D ItemInventory3_ItemTooltipUI) UI를 활용하면서 RectTransform의 위치를 기존에 position 값을 변경하듯이 바꿔주면 된다고 생각했었다. 근데 원하는 위치로 가지 않아서 찾아보니 anchoredPosition이라는 것이 있었다. anchoredPosition을 이용하면 Canvas의 Inspector 창에 있는 RectTransform Component에 있는 PosX와 PosY 값을 입력한 수치대로 변경할 수 있었다. ItemTooltip Background Image 하나와 그 안에 들어갈 TextMeshPro - Item Name Text, Item TooltipText 두 개를 활용해서 UI를 만들었다. (출처 : https://rito15.github.io/posts/unity-study-rpg-inventory..
Unity 60일차 TIL - Unity (Graphic RayCaster) 그래픽스 레이캐스터는 캔버스에 레이캐스트를 하는 데 사용한다. 이번에 Inventory UI를 만들고 Slot UI를 DragAndDrop 기능을 만들 때 사용했던 레이캐스트이다.  기본적으로 Canvas에 같이 붙어있는데 각 기능들은 이렇다. Ignore Reversed Graphics - 레이캐스터가 후면 그래픽스를 무시할지 여부Blocked Objects - 그래픽 레이캐스트를 막을 오브젝트 타입Blocking Mask - 그래픽 레이캐스트를 막을 Layer 타입 그래서 Blocking Mask에서 레이캐스트를 허용할 layer만 남겨두면 된다. private GraphicRaycaster gr;ped = new PointerEventData(EventSystem.current); rrList = ..
Unity 59일차 TIL - Unity (2D ItemInventory2_InventoryUI) (출처 : https://rito15.github.io/posts/unity-study-rpg-inventory/) 위에 링크에 있는 내용을 바탕으로 제작했다. 다음은 InventoryUI 부분이다. InventoryUI는 SlotUI들을 관리하는 용도라고 생각한다.초기에 SlotUI들을 생성해주고 List에 넣어서 이후에 data들을 관리하는 Inventory에서 수정을 하게되면 Inventory UI -> Slot UI 쪽으로 정보를 전달해주는 중간 다리 역할이다. private Inventory inventory;private InventoryUIDragAndDrop dragAndDrop;[Header("Options")][Range(0, 11)][SerializeField] private int ..
Unity 58일차 TIL - Unity (2D ItemInventory1_SlotUI) (출처 : https://rito15.github.io/posts/unity-study-rpg-inventory/) 위에 링크에 있는 내용을 바탕으로 제작했다.우선 인벤토리를 제작하기 전에 인벤토리에 들어갈 SlotPrefab을 만든 후 Slot에 들어갈 SlotUI Script를 만든다. SlotPrefab - Hierarchy구조는 Background Image와 ItemIconImage 그리고 포션 같이 셀 수 있는 아이템이 있는 경우 숫자를 표시해주기 위해서 Text를 넣어주고 셀 수 있는 아이템인 경우 활성화 시켜준다.HighlightImage는 커서가 Item Slot 위에 있을 때 활성화 시켜주기 위한 용도이다. SlotUI.cs// 슬롯 내에서 아이콘과 슬롯 사이의 여백[SerializeF..
Unity 57일차 TIL - Unity (C# Class 상속) FSM을 구현하면서 Class 상속에 관련해서 잘못 알고 있었던 부분을 정리해보려고 한다. Public Class A : Monobehavior{ public int a = 0; public int b = 0; protected int c = 0; protected int d = 0;}public Class B : A{ private void Awake() { a = 1; c = 1; }}public Class C : A{ private void Start() { Debug.Log("a : " + a); Debug.Log("b : " + b); Debug.Log("c : " + c); Debug.Log("d ..
Unity 56일차 TIL - Unity FSM(디자인 패턴) 트러블슈팅 FSM으로 플레이어 이동 및 공격 및 방어를 구현해보면서 문제점이 하나 생겼다.이런식으로 공격 키를 누른 상태에서 이동하거나 Idle 상태에서 공격 키를 계속 누른 상태를 구현하고 싶었는데 Action에서 누른 상태를 인식해서 State를 어떻게 넘겨줘야 될지가 고민이였다. 기존에 Performed가 누른 상태일 때 매번 호출되는 이벤트인 줄 알았었는데 막상 Debug를 찍어보니 1번씩 밖에 호출이 안됐다. 그래서 어떻게하면 각각의 상태에서 공격이나 방어 키를 누르고 있는 상태라는 걸 인식할 수 있고 또 그걸 어떻게 넘겨줘야 될지가 고민이였다. 처음에는 State로 사용하는 Class들이 MonoBehavior를 상속받지 않기 때문에 MonoBehavior를 상속 받는 Player Class 쪽에서 Co..
Unity 55일차 TIL - Unity FSM(디자인 패턴) 이번에 최종 프로젝트를 진행하면서 플레이어 이동 구현을 맡아 이전에 강의에서 배웠던 FSM(Finite State Machine) 유한 상태 머신이라는 디자인 패턴으로 구현해보려고 한다. FSM 개념- FSM은 유한한 갯수의 상태들로 구성된 기계 및 패턴을 뜻한다.- 상태와 상태 간의 전환을 기반으로 동작하는 동작 기반 시스템이다. FSM의 구성 요소- 상태 (State) : 시스템이 취할 수 있는 다양한 상태.- 전환 조건 (Transition Condition) : 상태 간 전환을 결정하는 조건.- 동작 (Action) : 상태에 따라 수행되는 동작 또는 로직 FSM의 동작 원리- 초기 상태에서 시작하여 입력 또는 조건에 따라 상태 전환을 수행- 상태 전환은 전환 조건을 충족할 때 발생하며, 전환 조..