1.플레이어 십자이동 구현
2. 애니메이션
(1) - Asset에 Animation폴더 생성
(2) - 애니메이션 스프라이트를 끌어다가 Player에게 드로그앤 드랍
(3) - 아래와 같이 Make Transition 하고 각 트랜지션에
* 겹치는 구간 없게 -> Transition Duration = 0
+Any state 에서 오른쪽 애니메이션인 player_right_walk state 로 가기위한 Transition 조건은 3번째 아래 스크린샷에 보이는 파라미터 HorizontalAnimation >0, isChanged true 일때 이다
나머지 방향도 같은원리
(4) - 플레이어 애니메이션 스크립트 작성
→입력
h=1 ,
HorizontalAnimation =0, h=1 따라서 isChanged = true,
HorizontalAnimation = 1
HorizontalAnimation > 0
Any State(Down_idle) -----> right_walk : right_walk에서 머무르면서 반복재생
HorizontalAnimation =1 , h=1 따라서 isChanged = false
↑ 입력하는 순간
v=1
VerticalAnimation =0, v=1 따라서 isChanged = true
VerticalAnimation = 1
VerticalAnimation >0
Any State(right_walk)------> Up_walk(Any State) -------->right_walk 실행
→키를 누른 상태에서 다른 방향키를 누르면 예를 들어 ↑ 키를 눌렀다가 땟다가 하면
↑ 애니메이션은 실행이 안되는 것처럼 보이고 → 애니메이션만 재실행한다
(실은 ↑애니메이션이 실행되자마자 바로 → 애니메이션이 실행되버리는 것임)
이후 ↑를 쭉 누르고 있어도(→는 계속 누르고 있는 상황) → 애니메이션만 반복실행
위 상태를 해결하기 위해서는
Any State에서 나오는 Transition에서 Can Transition To를 체크 해제 해주어야 함
추론 : Any state에서 넘어가는 애니메이션을 결정하는 Transition이 Can Transition To (self)가 체크
되어 있다면
만약 Any State의 Transition조건을 만족하여 어떠한 애니메이션이 진행중인 상태에서
그 조건을 계속 만족하면서 또 다른 새로운 조건도 계속 만족한다면
이미 조건을 만족하여 실행하고 있었던 해당 애니메이션이 우선하여 반복실행된다
만약 Can Transition To(self)가 체크 해제 되어 있다면
같은 상황에서 후입력되어 조건을 만족한 애니메이션이 반복실행된다
3. RayCast 로 Palyer이 보고있는 방향 앞 부분 Scan하기
3-1 Debug.DrawRay로 먼저 RayCast를 그려보기
(1) - 플레이어로부터 뻗어나올 레이케스트가 향할 방향을 결정하는 Vector2 playerDirect; 전역번수를 선언한다
(2) - 플레이어의 수평속도h, 수직속도 v에 따라 정해질 playetDirect의 벡터 방향을 결정하는 함수를 생성
(3) - 수평, 수직버튼을 누르고 때면서 플레이어가 이동하는 방향에 맞추어 레이케스트의 방향이 올바르게 정해지도록
함수를 이용하여 구현
(4) -
Debug.DrawRay(레이져가 시작하는 위치(Player), 레이저가 향하는 방향(playerDirect)*길이(기본1), 레이저 색(green) )
(5) - DrawRay로 RayCast가 그려진 모습
3-2 실제로 RayCast를 발사하기
(1) - RaycastHit2D rayHit = physics2D.Raycast(발사시작점, 발사방향, 길이, 스캔할 Layer의 이름)
(2) - 만약 레이져을 맞은 rayHit의 콜라이더가 있다면 "물체 스캔중" 콘솔 출력
(3) - 없다면 "물체가 스캔안됌" 콘솔출력
3-3 실제로 RayCast를 맞은 Layer가 "Object"인 게임오브젝트가 있다면 그 오브젝트를 미리 선언한 scanObject 변수에 할당하고 만약 스페이스바를 눌럿고 scanObject가 있다면
$"This is : {scanObject.name}"을 콘솔 출력하도록 구현
'Unity > Unity2D_TopDown' 카테고리의 다른 글
Unity2D_TopDown -UI (3) Ui 커서 애니메이션 (0) | 2020.12.15 |
---|---|
Unity2D_TopDown -UI (2) 판넬Ui 껏다 켜기 (0) | 2020.12.10 |
Unity2D_TopDown - UI(1) 기본셋팅 (0) | 2020.12.10 |
Unity2D_TopDown - 타일애니매이션 및 콜라이더, 플레이어 기본설정 (0) | 2020.12.03 |
Unity2D_TopDown - Rule Tile (0) | 2020.12.02 |