길 생성하기
길을 생성하는 방법은 스카이라인을 생성하는 방법에서 약간만 다르다. 길은 길과 길 사이의 거리와 높이가 랜덤하게 배치된다. 또한 우리는 스카이라인이 보이게 길의 위치나 고도를 제한할 필욛 있다. 만약 길이 화면 밖에 있으면 우리는 그것을 다시 사용 해야 된다.
Platform이라는 폴더를 생성한다. PlatformManager라는 C# script를 생성한다 . 그리고 SkylineManager 코드를 복사한다. 그리고 아래처럼 몇개의 코드만 고친다.
using UnityEngine; using System.Collections.Generic; public class PlatformManager : MonoBehaviour { public Transform prefab; public int numberOfObjects; public float recycleOffset; public Vector3 startPosition; public Vector3 minSize, maxSize, minGap, maxGap; public float minY, maxY; private Vector3 nextPosition; private Queue<Transform> objectQueue; void Start () { objectQueue = new Queue<Transform>(numberOfObjects); for(int i = 0; i < numberOfObjects; i++){ objectQueue.Enqueue((Transform)Instantiate(prefab)); } nextPosition = startPosition; for(int i = 0; i < numberOfObjects; i++){ Recycle(); } } void Update () { if(objectQueue.Peek().localPosition.x + recycleOffset < Runner.distanceTraveled){ Recycle(); } } private void Recycle () { Vector3 scale = new Vector3( Random.Range(minSize.x, maxSize.x), Random.Range(minSize.y, maxSize.y), Random.Range(minSize.z, maxSize.z)); Vector3 position = nextPosition; position.x += scale.x * 0.5f; position.y += scale.y * 0.5f; Transform o = objectQueue.Dequeue(); o.localScale = scale; o.localPosition = position; objectQueue.Enqueue(o); nextPosition += new Vector3( Random.Range(minGap.x, maxGap.x) + scale.x, Random.Range(minGap.y, maxGap.y), Random.Range(minGap.z, maxGap.z)); if(nextPosition.y < minY){ nextPosition.y = minY + maxGap.y; } else if(nextPosition.y > maxY){ nextPosition.y = maxY - maxGap.y; } } }
이제 platforms 프리팹을 만들고, material 도 만들어보자. skyline materials을 복사해서 칼라값만 (255, 60, 255)로 변경할수있다. Platform Regular Mat으로 변경하자. 새로운 cube를 만들고, materials을 붙이고 프리팹으로 만든다. 이름은 Platform으로 지정한다. 프리팹과 메트리얼은 Platform 폴더에 집어넣는다.

Platform Manager 이라는 빈 게임오브젝트를 만들고 Managers의 자식으로 놓아둔다. Platform Manager 컴포넌트에 스크립트를 붙인다. 프리팹에 Platform prefab을 연결하고 Number Of Objects은 6으로 설정한다. Recycle Offset 은 20으로 설정하고, Start Position 은 (0, 0, 0), Min Size 은 (5, 1, 1), Max Size 는 (10, 1, 1)으로 설정한다. 그리고 새로운 필드인 Min Gap, Max Gap,Min Y, 그리고 Max Y 는 각 각 (2, -1.5, 0), (4, 1.5, 0), -5, 그리고 10 으로 설정한다. 다시 말하지만 원한다면 니가 원하는 숫자로 설정할수있다.

'유니티 > 스크립트' 카테고리의 다른 글
| [런게임] 유니티 3D로 러너 게임 만들기 - 게임 이벤트들 (0) | 2014.01.13 |
|---|---|
| [런게임] 유니티 3D로 러너 게임 만들기 - 길의 종류 (0) | 2014.01.13 |
| [런게임] 유니티 3D로 러너 게임 만들기 - 점프와 점프 실패 (0) | 2014.01.13 |
| [런게임] 유니티 3D로 러너 게임 만들기 - 플랫폼(길) 생성하기 (0) | 2014.01.13 |
| [런게임] 유니티 3D로 러너 게임 만들기 - Runner, Skyline 만들기 (0) | 2014.01.12 |
| [런게임] 유니티 3D로 러너 게임 만들기 - 씬 설정하기 (0) | 2014.01.12 |
Trackback 0 And
Comment 0


