TIL

2024 10 27 TIL

noc777 2024. 10. 27. 21:31

 

slotPanel을 Transform으로 지정한 이유는 Transform에 위치 회전 스케일 값 뿐 아니라 부모-자식 상태 저장도 포함되어 있기 때문이다. (정보 출처 -https://docs.unity3d.com/kr/2021.3/Manual/class-Transform.html)

 

 

GameObject의 자식 Object 갯수를 구하는 childCount 를 써서 SlotPanel 안의 슬롯UI의 갯수를 계산하는 방법

슬롯의 공간을 확보하였으니 데이터값을 불러오기 위해 slotPanel.Gechild(i)를 하여 i번째 자식 컴포넌트의 ItemSlot 스크립트 데이터를 받아오는 것 또한 예상치 못한 접근인거같다. 받아온 데이터를 기반으로 index의 값과 선언만 되어있는 

UIInventory의 정보를 이 오브젝트로 지정하는 방식이다. 슬롯 프리팹에 개개인의 정보를 어떻게 담을지 궁금하였는데 머리가 띵하다.  

그리고 버튼들을 초기화하는 과정에서 setactive(false) 가 쓰이지 않아 다시 살펴봤는데

버튼을 선언하는 자리에 GameObject 타입으로 선언이 되어있었다. GameObject는 컴포넌트들의 상위기 때문에 Button 또한 연결된 게임오브젝트에 붙어있다면 기능을 사용할 수 있기에 이렇게 선언한 것이였다. 그렇게 GameObject로 바꾸어주고 나서 다시 진행해본다. 

갑자기 GameObject와 gameobject의 차이를 정확히 알고싶어 검색을 해보니 GameObject는 클래스이고  gameobject는 그의 인스턴스이며  스크립트 상에서 쓰일 땐 GameObject는 새로 데이터를 가져오거나 추가할 때 쓰이며 gameobject는 스크립트가 붙여있는 오브젝트 자신과 그 하위 오브젝트의 데이터에 접근할 때 쓰이는 듯하다.  예시로 gameobject.SetActive(false)로 gameobject를 끄더라도 자신과 하위는 꺼지지만 그 부모나 형제는 영향을 안받는것을 볼수있다.  

 

그리고 델리게이트를 사용하는 것이 보였기에 다음에 델리게이트를 사용할 때 참고하기 위해 경로를 따라가본다.  playercontroller에 액션 인벤토리를 선언하여 주고 

이 컨트롤러에 토글 함수를 구독시켜주어 추후 버튼이 눌렸을 때 사용되도록 하는것이다.

이제 눌렸을 때 실행되는 메서드에  인보크를 통해 액션을 사용해주면 된다.

Action을 활용하는 건 즉 액션 선언 액션안에 구독시켜놓고 필요한 위치에 액션을 invoke 라는 것을 알면 쉬울 것 같은데 정작 활용할 때를 생각을 못하는게 문제같다.

 

아이템 스택을 쌓을 때 Player에 itemData를 저장해놓았다가 이벤트를 호출 시켜 저장된 itemData 정보를 받아오고 canStack 이 true인지 판별하여 처리한후 itemData를 다시 비워놓는 로직이다.  OnInteract 를 저번에 작성한 것만 봐서는 엥 Player에서 왜 ItemData를 들고있지? 라는 생각을 했었는데 아 그렇구나라는 느낌이다. 

 

이 부분에서 왜 SelectedItem과 Index를 나누었는지 이해하기 힘들었는데 일단 

 

 

텍스트에 += 를 통해 내용을 추가할 수 있는 것을 알았다.

 

카메라의 ClearFlags 를 Depth only로 해주면 Culling Mask에 해당하는 Layer만 보여주게 된다.

'TIL' 카테고리의 다른 글

2024 10 29 TIL  (0) 2024.10.29
2024 10 28 TIL  (0) 2024.10.28
2025 10 25 TIL  (0) 2024.10.25
2024 10 24 TIL  (0) 2024.10.24
2024 10 23 TIL  (0) 2024.10.23