예비군으로 수업 못들음
이론
- 스택의 길이는 추가와 제거로 바뀔 수 있지만 추가된 저장 공간의 크기는 ‘절대’ 바뀔 수 없다.
- Null : 그냥 키워드 일뿐 ‘자료형이 아니다.’ ⇒ Value 타입은 값이 있는 상태이기 때문에 ‘없다’라는 말이 들어올 수 없다. ⇒ Nullable을 붙이면 가능해진다. (다만, Value 타입이 Reference 타입으로 바뀐다.)
- 저장된 공간의 크기는 바꿀 수 없지만, Null로 초기화를 한 다음 새로운 저장을 하는것은 가능하다.
Enemy - FireBall FixedUpdate 정리
- 공격 받는 중이면 감지도, 워프도, 공격도 하지 않는다.
- 플레이어를 감지했는지 확인한다.
- 플레이어가 감지되지 않았다면 아무것도 실행하지 않는다. (대기상태)
- 플레이어를 감지했다면 워프든 공격이든 실행해라
- 플레이어와의 거리를 확인해서 감지영역 안에는 들어왔고 회피 영역보다 밖에 있다면 ⇒ 공격해라
- 감지 영역에 들어온 플레이어를 계속 바라본다.
- WaitMode가 아닌 경우 ⇒ 장착 중일 경우, 공격 중일 경우, 피격 중일 경우
- 워프든 공격이든 실행하지 않는다.
- 파이어볼 보드가 아닌 경우
- 워프를 실행하지 않았으니 워프 쿨타임 초기화
- 파이어볼을 장착한다.
- 파이어볼을 장착했을 경우
- 파이어볼 발사한다.
- 회피 영역에 들어왔다면
- 파이어볼을 장착한 경우일때
- 상태 대기 상태가 아니고 공격중일 경우
- 공격을 캔슬시킨다. (공격을 중지하고 도망가야하기 때문이다)
- 상태 대기 상태가 아닐 경우 ⇒ 장착중이거나, 액션 중일 것이다.
- 실행하지 않는다.
- 워프를 장착하지 않았다면
- 워프를 장착한다.
- 워프를 장착했다면
- 플레이어의 위치를 받아서 워프를 실행해라
- 워프를 실행할때 플레이어의 위치를 받는다.
- 워프 회피를 할 위치를 지정한다. - 플레이어의 위치를 받아 플레이어의 위치를 기준으로 워프한다.
UGUI
- 히에라르키 창에 배치된 오브젝트의 순서는 랜더링 되는 순서다.
- Canvas - Panel - RawImage 순서로 배치하면 패널 메뉴가 먼저 출력되고 배경화면이 출력되기에 순서를 바꿔줘야한다.
- Canvas - RawImage - Panel 순서로 배치해야한다.
Canvas
- 실제 게임 화면에 1 : 1 비율로 생성되는 화면
- 캔버스 위에 여러장의 캔버스를 생성할 수 있다.
- 하지만, EventSystem은 하나로 동작한다. → EventSystem에서 이벤트를 받아 캔버스 위에 배치한 UI로 전달한다.
- Canvas → EventSystem : 캔버스에서 버튼같은 객체를 상호작용하여 이벤트가 발생하면 EventSystem으로 이벤트가 발생한것을 알린다.
- EventSystem → Canvas : 발생한 이벤트에 대한 처리를 캔버스 위에 콜해준다.
Rect Transform (컴포넌트)
- Anchors : 캔버스의 시작 위치를 어느 지점에서 시작할지 고르는 속성이다.
- Pivot (중심점) : 처음부터 끝까지를 0 ~ 1로 놓았을때 0.5를 한다면 한 줄의 가운데를 의미한다.
Canvas (컴포넌트)
- Render Mode
- Screen Space (화면공간) - Overlay : 화면공간위에 겹쳐서 그린다는 속성이다.
- Screen Space (화면공간) - Camera : 화면공간위에 카메라 공간에 그린다는 속성이다.
- World Space : 3D UI를 사용할때 그리는 속성이다.
- ex. 3D 화면상에서 계속 정면만 보이게 하는 UI가 아니라, 볼 때 틀어지게 만들때 사용하는 속성이다.
- Sort Order : 숫자가 낮을 수록 가장 앞에 출력되는 캔버스 순서를 의미하는 속성이다.
Camera
- Target Display : UI 디자인할때 디스플레이를 여러개 놓는데(게임화면 탭 아래에 매뉴바에 있다), 게임화면에 랜더링(화면출력)을 어느 디스플레이에 할지 정하는 속성이다.
- 카메라를 여러개 두고 디스플레이 랜더링을 여러개하여 시점을 다르게 할때 사용한다.
- 주로 관전 카메라를 만들때 사용한다.
- 또는, 시네마틱 연출(문을 열떄 극적인 연출을 할떄)에 사용한다.
EventSystem
- Event System (컴포넌트) - First Selected : 게임오브젝트를 이곳에 넣으면 게임을 실행할때 자동으로 선택되있는 속성이다.
- ex. 웹에서 창을 열때 검색창이 먼저 선택되어 깜빡이는 것 같은 효과를 준다.
- Send Navigation Events : 태그된 객체로 이동을 시킬것이냐를 허용하는 속성
- ex. tab키를 눌렀을때 선택된 객체가 바뀌는 것을 허용할 것이냐를 묻는 속성이다.
- Drag Threshold : 드래그 간격(Delay) / 10이라면 1000분의 10초마다 드래그 된다는 것이다.
Standalone Input Module (컴포넌트)
- Submit / Cancel Button : 버튼 이름을 무엇으로 할거냐를 작성하는 속성이다.
- Repeat Delay : 누르고 있을때 몇초마다 콜 될것이냐를 정하는 속성이다.
Canvas에 UI 올리기
- 다른 오브젝트를 자기 위에 올리는 UI
- 입력만 받는 UI
- 다른 오브젝트를 그룹으로 묶을때 사용하는 오브젝트 : Panel (패널)
UI를 디자인하는 순서
- Canvas를 생성한다.
- 그 위에 Panel을 생성한다.
- 그 위에 ‘컨트롤’들을 올린다.
- 우리는 전문적인 디자이너가 아니기 때문에 편의상으로 배치한다,.
- 일단 앵커를 먼저 잡은 다음에 수치로 조절한다. (앵커 클릭으로 조절해도 좋다)
Panel
- UI 작업은 손 도구(씬 화면 왼쪽에 위치조정하고 회전하는 도구) 중에서 ‘Rect Tool’(객체 크기 조절 도구)를 주로 사용한다.
- 눌렀을때 4개의 꼭짓점에 ‘청색 동그라미’와 ‘흰색 삼각형’ 도형이 그려져있다.
- 청색 동그라미 : 객체의 실제 크기 조절하는 점 ⇒ 게임 화면과 1 : 1 사이즈다.
- Alt 키를 누르고 조정하면 중심점을 기준으로 4 꼭짓점이 다 같이 조절된다.
- 흰색 삼각형 : 화면을 출력하는 화면영역 앵커의 크기를 조절하는 점 ⇒ 게임 실행시 출력화면 옆에 검은 배경이 앵커 영역이다. (화면 출력 영역은 청색 동그라미다)
- Anchor
- 빨간선 : 고정
- 파란선 : 가변
- 화면 크기를 조정할때 앵커를 기준으로 화면의 크기가 변한다.
- 우 하단 꼭짓점을 기준으로 한다면 화면을 줄였을때 우 하단 꼭짓점을 기준으로 화면의 출력되는 크기가 변한다.
Image (컴포넌트)
- image Type
- Simple : 한장으로 출력
- Sliced : 포토샵 같이 가져온 이미지가 조각나있을때 조각난 이미지를 사용할때 쓴다.
- 사용 이유 : 위 아래에만 무늬가 있고 가운데는 실선일 경우 위 아래는 고정시키고 가운데 부분을 늘려서 그림의 크기를 늘릴때 사용한다.
- Tile : 반복
- Filled : 꽉 채움
RawImage
- 이미지 자채를 출력하는 오브젝트다.
- 주로 ‘배경화면’을 띄울 때 사용한다.
- 게임화면에 알맞게 채우고 싶다면 캔버스의 크기를 확인한다.
RawImage (컴포넌트)
- SetNative Size : 실제 그림 크기로 출력한다.
Button
Button (컴포넌트)
- Interactable : 클릭 활성화 여부 확인 체크박스
- Transition
- Color Tint : 버튼 상호작용시 색상으로 보여줄 때 사용한다.
- Sprite Swap : 버튼 상호작용시 이미지로 보여줄 때 사용한다. (디자이너가 주로 사용한다.)
- Animation : 버튼 상호작용시 애니메이션으로 보여줄 때 사용한다.
- Nomal Color : 기본 색상
- Hightlighted Color : 커서를 버튼에 올렸을때 색상
- Pressed Color : 버튼 눌렀을때 색상
- Selected Color : 버튼이 선택됬을때 색상
- Disabled Color : 비활성화 됬을때 색상
- Color Multiplier : 얼마만큼 버튼에 색상을 곱할지 비율을 결정하는 슬라이드 바
- Fade Duration : 버튼이 상호작용되어 색상이 바뀌는 시간 (숫자가 클수록 바뀌는 시간이 오래 걸린다)
간단한 포토샵 웹 (포토피아)
- 새 프로젝트
- 너비 : 32 / 높이 : 32
- DPI : 72 (기본적으로 72를 많이 사용한다) / 픽셀 - Inch ⇒ 1inch당 72 DPI를 사용한다는 의미이다.
- 왼쪽 도구 중 색상 선택기 클릭
- 오른쪽 도구 중 레이어 선택
- Background 더블클릭 - 확인
- 자물쇠 클릭하여 해제
- 우클릭 - 혼합 옵션 - 불투명도 60% ⇒ 배경이 반투명하게 보이게 된다.
- 파일 - 내보내기 형식 : PNG - UI_BG(파일 이름) - 품질 100 - 저장
틴트 컬러
- 지금까지 Color의 색을 바꾸는 것을 전부 ‘흰색’에서 ‘지정한 색’을 곱하여 나온 색을 보여주는 것이었다.
- 이런식으로 나오는 색을 ‘틴트 컬러’라고 한다.
- 주로, ‘조준선’에서 사용한다.
- 기본적으로 흰색이었다가 적에게 조준하면 빨간색으로 변하도록 하는것처럼 사용한다.