<오늘 진행할 일>
인벤토리
아이템 사용
<오늘의 공부>
1. Grid Layout Group
: Grid Layout Group 컴포넌트를 가지고 있는 부모 오브젝트안에 있는 자식 오브젝트들을 정렬시켜준다.
(하위 오브젝트를 레이아웃 요소로 만들어버리는 것이라고 생각한다.)
파라미터 | 기능 |
Padding | 상위 Rect 크기에 대한 상하좌우 패딩영역(여백)을 설정 |
Cell Size | 레이아웃 요소가 사용할 셀의 크기를 설정 |
Spacing | 레이아웃 요소간의 간격을 설정 |
Start Corner | 첫 요소가 위치하는 코너를 설정 |
Start Axis | 요소를 배치할 방향의 주축을 설정 |
Child Alignment | 레이아웃 요소의 정렬 방식을 설정 |
Constraint | 자동 레이아웃 시스템을 지원하기 위해 격자무늬의 행렬 수를 제한 (강제 행 이동) |
2. 마우스 클릭에 관한 이벤트를 가져오는 인터페이스 (using UnityEngine.EventSystem)
:
인터페이스 이름 | 기능 및 나오는 멤버 함수 |
IPointerEnterHandler |
마우스가 해당 오브젝트에게 닿아 있을 때 발생하는 이벤트 멤버 함수 : OnPointerEnter |
IPointerExitHandler |
마우스가 해당 오브젝트에게서 나갔을 때 발생하는 이벤트 멤버 함수 : OnPointerExit |
IPointerClickHandler |
클릭했을 때 발생하는 이벤트 멤버 함수 : OnPointerClick |
IBeginDragHandler |
드래그 시작시 왼쪽 버튼을 처음 누를때 발생하는 이벤트 멤버 함수 : OnBeginDrag |
IDragHandler |
드래그 중일때 발생하는 이벤트 멤버 함수 : OnDrag |
IEndDragHandler |
드래그가 멈췄을 때 발생하는 이벤트 멤버 함수 : OnEndDrag |
IDropHandler |
마우스 클릭을 끝냈을 떄 발생하는 이벤트 멤버 함수 : OnDrop |
※OnEndDrag와 OnDrop의 차이
: 인벤토리 슬롯을 만들었을 때, OnEndDrag는 단순히 드래그가 끝났을 때마다 호출되고 OnDrop은 다른 슬롯의 위에서 드래그를 끝냈을 때 호출된다.
(OnDrop 또는 드래그 관련 이벤트가 있는 오브젝트끼리 일때만 호출되는건지도 모르겠다.)
3. 프리팹의 Serialized 사용/미사용
: 프리팹으로 된 오브젝트들의 Serialized는 자기 자신 안에있는 객체들만 참조 가능하기에, Hierarchy에 있는 객체를 참조하는 것은 의미가 없다.
(이미 Hierarchy에 꺼내놓은 것은 드래그해서 넣으면 되기에 상관X, 인 게임 내에서 프리팹을 생성에서 사용할 경우에 해당되는 것)
4. Image 컴포넌트의 Raycast Target
: 광선을 쏠때 해당 오브젝트가 맞는가? 체크 == true
ex) 인벤토리의 슬롯이 드래그 하는 모습을 보여주기 위해 DragSlot이라는 슬롯을 만들어 Slot위에 렌더되게 했더니 선택 및 이동이 안되는 문제가 발생. DragSlot에 Raycast가 선택이 되어있어 다른 슬롯과의 충돌처리에 방해를 해서 발생한 것이었다.
5. 예외처리에 Debug.Log를 활용하자
: for문, if문, switch문 등을 사용할 때 오타나 넣지 않았을 경우를 대비하여 Debug.Log를 써주면 나중에 무엇이 틀렸는지 무엇을 빼먹었는지 확인하기가 쉽다.
6. [Tooltip]
: 특정 변수의 왼쪽 or 위쪽에 작성하면, 인스펙터 창에 뜨는 해당 변수의 부분에 마우스를 올릴때 설명이 뜬다.
ex)
7. Text 컴포넌트의 BestFit
: 체크 == true : 텍스트 영역의 크기에 글자 크기를 맞추겠다.
- Min Size : 바뀌는 글자 크기의 최소 사이즈
- Max Size : 바뀌는 글자 크기의 최대 사이즈
8. [TextArea]
: 인스펙터 창에 여러줄의 글을 작성 할 수 있도록 만든다.
public string desc;
: 인스펙터 창에 1줄만 쓸 수 있게 나온다.
[TextArea] public string desc;
: 인스펙터 창에 여러줄의 텍스트를 쓸 수 있도록 나온다. (마치 UI-Text에 텍스트를 써넣는 창처럼)
9. 스택 오버플로우
: 함수 → 함수 → 함수 → 함수로 자주 호출되면 오류가 발생되게 되는 것.
<오늘 진행한 일>
1. 인벤토리
: 아이템을 습득 한 후 'I키'로 인벤토리를 열어 아이템을 습득했음을 나타내었습니다.
아이템이 들어있는 슬롯에 마우스를 가져다 대면 툴팁이 보이도록 했으며, 아이템이 들어있는 슬롯을 클릭하여 드래그하면 아이템이 다른 슬롯으로 옮겨지도록 하였습니다.
2. 아이템 사용
: 소비 아이템의 경우에는 아이템 사용 시 스테이터스의 특정 부위를 회복되게 하였습니다.
방비 아이템은 소비되는 것이 아닌 우클릭시 바로 장착이 되도록 하였습니다.
- 참고영상 케이디의 유튜브
https://www.youtube.com/playlist?list=PLUZ5gNInsv_Nzex8Cvxce_1zjUf0cNWY9
'수업 > Unity 2주 프로젝트 및 공부' 카테고리의 다른 글
Unity 프로젝트 및 공부 14일차 (0) | 2019.06.17 |
---|---|
Unity 프로젝트 및 공부 12일차 (2) | 2019.06.15 |
Unity 프로젝트 및 공부 11일차 (0) | 2019.06.14 |
Unity 프로젝트 및 공부 10일차 (0) | 2019.06.13 |
Unity 프로젝트 및 공부 9일차 (0) | 2019.06.12 |