[ Ray / RayCast ]
[ Hero ]
grounded 처리
목적 : PlayerControl 스크립트 안에있는 Linecast 함수를 사용하여 캐릭터가 땅에 닿아있는지 좀 더 쉽게 확인 할 수 있도록 함 - ground에서만 점프가 가능하도록 처리하고 있음
Hero 하단에 groundCheck라는 Empty Object 생성
생성된 groundCheck를 Hero 바로 아래에 배치
Icon 변경
Inspecter View >> groundCheck(GameObject 명이 있는 곳)의 왼쪽 아이콘을 누르면 Icon을 변경할 수 있음
바뀐 아이콘은 실행 화면에서는 나오지 않음
env_PlatformBridge_0 / env_PlatformUfo를 "Ground" Layer를 사용함
참고 : Tag & Layer Manager에서 Layer를 생성
Physics2D.Linecast() : 매개변수로 주어지는 두 점 사이에 있는 Collider가 있을 경우 그 Collider의 정보를 알려줌
<Source> PlayerControls06.cs
미사일 발사 처리
Hero에 새로운 State 추가하기
로켓을 발사했을 때의 새로운 애니메이션 추가
Animator View
Run 애니메이션 중에 로켓 발사하는 애니메이션을 재생하려면 애니메이터 내의 Shooting 이라는 별도의 레이어를 만들어야 함
새로운 Layer 추가 (왼쪽 상단의 Layers 에서 '+' 기호 클릭)
Name : shooting
Weight : 1 (참고 : 해당 Layer의 [설정 icon]에서 설정해 줘야 함)
Shooting 레이어에서 Animation Clip으로 움직이는 캐릭터의 모든 부위에 대한 움직임을 기본 레이어에서 완전 재지정 할 수 있게됨
Mask : None
Blending : Override
슈팅 상태를 위한 Parameter 추가
Trigger 형태 / 이름 "Shoot"
미사일 발사 애니메이션 상태(Controller) 추가
오른쪽 마우스 클릭 >> Create State >> Empty
Name : Shoot
Speed : 1
Motion : Shoot
(Shoot라는) 발사 애니메이션을 만든 후 여기에 대입함
Foot IK : Uncheck
Mirror : Uncheck
미사일 발사 후 상태(Controller)추가
오른쪽 마우스 클릭 >> Create State >> Empty
Name : Empty State
Speed : 1
Motion : None
Any State ---> Shoot : Make Transition
어떤 상태에서 총알이 발사 상태로 전이
Transitions >> Conditions : Shoot(우리가 만든 Parameter 트리거)
Shoot ---> Empty State : Make Transition
총알이 발사된 이후의 상태 전이
Has Exit Time : Check
Hero(GameObject) 밑에 Gun이라는 Empty Object 만들기
Gun의 위치는 미사일이 나가는 위치
Gun에 Component 추가하기
Audio Source
Audio Clip : bazooka
Assets/Audio/FX/bazzoka.wav 복사
Play On Awake : Uncheck
Gun.cs
Script를 Hero에 바로 붙여도 되나, 미사일이 발사되는 위치를 Gun에서 처리하는 것이 보다 편함
<Source> Gun01.cs
Gun의 위치에서는 미사일이 발사되도록 하기
Rocket.cs에서 만들었던 transform.Translate() 주석문 처리하기 (Gun.cs에서 rigidbody를 사용하고 있음)
Hero의 Tag : Player 로 되어 있는지 확인할 것
<Source> Gun02.cs
rocket : Prefab의 rocket연결
[ UI 만들기 ]
[ uUI ]
Canvas 생성 ( 씬 내에 UI를 생성하려면 필수로 만들어지는 게임 오브젝트)
Menu : GameObject >> UI >> Canvas
Inspector : Canvas Component
Render Mode : Screen Space - Overlay Render Mode
Canvas Scaler Component
UI Scale Mode : Scale With Screen Size
Score Text 생성 (여기에 점수를 표기한다.)
Menu : Canvas 우측클릭 >> UI >> Text
Inspector : Text Component
Character 그룹
Font : BradBunR
Font Style : Normal
Text : Score : 0
Font Size : 20
Paragraph
Color : 흰색
Menu : Empty Object 생성 >> ScoreNew로 이름 변경
<Source> ScoreNew.cs
[Canvas:Text 게임오브젝트] >> ScoreNew[스크립트]:Score Text 삽입
Score Text : Canvas UI Text(Score) 연결
[ UI 만들기 ] < --- 이전 버전
UI라는 Empty Object 생성
Score UI 만들기
Menu : GameObject >> Create Other >> GUI Text
Text : Score
Anchor : upper center
Alignment : center
Pixel Offset : X:0 / Y:0
Line Spacing : 1
Tab Size : 4
Font : BradBunR
Sample Project : Assets/Fonts/BradBunR 복사
Material : None
Font Size : 80
Font Style : Normal
Color : 흰색
Pixel Correct : Check
Rich Text : Check
GUI Text(GameObject 명)을 Score로 바꿈
적당한 위치에 Score 위치 시킴
Audio Source Component 추가
Play On Awake : Uncheck
<Source> Score01.cs
Score Shadow UI 만들기
Score의 그림자 효과 처리
Menu : GameObject >> Create Other >> GUI Text
Score와 세팅을 똑 같이 하고 단지 [ Color : 검은색 ]으로 함
ScroreShadow.cs를 만든후 GuiCopy 변수에 Score(GameObject) 연결
<Source> ScoreShadow.cs
ui_bombHUD UI만들기
왼쪽 하단의 Bomb UI 만들기
Assets/Sprites/Props/prop_crate_ammo.png 복사
Menu : GameObject >> Create Other >> GUI Texture
Game Object의 이름을 ui_bombHUD로 바꿈