[ Path 만들기 ]
Path의 2D 스프라이트 생성하기
Menu : GameObject >> 2D Object >> Sprite
New Sprite를 Path로 이름 바꾸기
Inspector View >> Sprite Renderer에 Sprite에 None이라고 되어있는부분에 원하는 Sprite를 끌어다 넣는다.
Order in Layer 부분에서 0이 되어있는걸 Foreground의 수 보다 높은 수로 설정 한다.(Foreground보다 위에 있어야지 Path가 보이므로)
Prefab만들기
Project View에서 Asset에 Resources라는 폴더를 만들고 그 하위 폴더에 Prefabs이라는 폴더를 만든다. (중요 : Prefab을 부르기 위해선 Resources라는 폴더엔 꼭 존재해야한다.)
Prefabs에 Create -> Prefab을 하고 Hierarchy View에있는 Path (sprite)를 넣어준 후 Path (sprite)삭제한다. (Prefab에 이미 저장이 되어있는 이미지를 Game View를 불러 주는 것이므로)
PathManager만들기
Hierarchy에 GameObject >> Create Empty를 만든다.
PathManager로 이름을 바꾼다.
PathManager.cs를 PathManager에 붙이기
<Source> PathManager.cs => [프로그램] Part03 Source
Instantiate -> Prefab을 불러 오는 함수
Queue로 prefab을 여러번 부른다.
numberofObjects -> 부를 수
Recycle() 함수에서 첫번째 길 다음의 길을 계속적으로 생성하고 그 전의 길을 지움
Enqueue -> 데이터 추가
Dequeue -> 데이터 삭제
nextPosition
Random.Range으로 생성하게 만듬(붙어있을수도있고 떨어져 있을수도 있게 하기 위함)
objectQueue.Peek ().localPosition.x + recycleOffset < Runner.distance -> 가장 앞에 있는 Queue 데이터의 Position.x의 값이 Runner의 위치 보다 뒤에 있게 될경우 Recycle()함수를 부르면서 Path를 없앤다.
recycleOffset 임의 수를 지정해주면서 카메라와 캐릭터가 Path가 보이지 않게 됐을때 지우기 위함.
[Game Event 만들기]
<Source> GameEventManager.cs => [프로그램] Part03 Source
델리게이트(delegate)로 게임이벤트 생성 -
Game Over
Game Start
[ Score 만들기 ]
ScoreManager만들기
Hierarchy에 GameObject >> Create Empty를 만든다.
ScoreManager로 이름을 바꾼다.
ScoreManager.cs를 ScoreManager에 붙이기
<Source> ScoreManager.cs => [프로그램] Part03 Source
간단하게 시간에 따라 점수를 늘리는걸로
Gamescore += Time.smoothDeltaTime;