근거리 풍경에 해당되는 바닥을 만들어봅시다.
바닥같은 경우에 여러가지 형태가 존재할수있습니다. 쭉 일자로 뻗은 바닥
중간이 없는 바닥. 높이가 다른 바닥등등 총 5가지 바닥을 만들어보겠습니다.
만든 바닥은 프리팹으로 설정하여 무한으로 스크롤될시 생성과 제거를 반복해줍니다.
프리팹이란?
프리팹은 오브젝트를 별도의 메모리에 저장해 두고 필요시 복제해서 사용하는 개념입니다.
바닥타일같은경우 생긴 모양은 다르지만 그 길이는 일정합니다.
바닥을 만들어주는 스크립트는 CsGroundManager를 만들어줍시다.
생성 -> 이동 -> 삭제 가 계속해서 반복적으로 일어나며 무한 스크롤이 가능해집니다.
Quad를 사용해서 프리팹을 만들어보겠습니다.
A타입과 B타입을 만듭니다.
먼저 빈 게임 오브젝트를 만들고 Reset을 눌러 초기화 시켜줍니다. 이름은 A_Ground로 변경합니다.
마찬가지로 Quad를 생성하고 Reset을 누르고 초기화 시켜준후 이름을 A_Ground로 변경합니다. 위에 만든 A_Ground의 자식으로 놓습니다.
Quad의 위치값을 0, -5, -5 로 만들고 스케일은 25 , 10, 1 로 만듭니다. Box 콜라이더를 추가해주고 Z 사이즈를 10으로 만들어줍니다.
그리고 프리팹으로 만들어 줍니다.
마찬가지로 B_Ground 빈게임오브젝을 만들고 리셋 그리고 B_Ground로 변경하고
Quad 생성 위치를 -10, -5, -5 로 변경 스케일 5, 10, 1로 변경 하고 박스 콜라이더를 추가하고 z 값을 10으로 만들고
컨트롤 + D 로 오브젝트를 2번 더 복사해주고 각각 X의 위치값을 0, 10으로 만들어줍니다, 그럼 3개의 블록이 만들어지는데 이 3개의 블록을
위의 B_Ground의 자식으로 만들고 프리팹 해줍니다.
A와 B 프리팹을 가지고 땅을 만들고 삭제하는 스크립트를 만들겠습니다.
일단 최초 플레이어가 밟을수있는 땅을 미리 만들어 놓습니다.
이 땅은 Quad 로 생성하고 2개를 만들어줍니다.
각 이름은 A_Ground 와 B_Ground이고 스케일 값은 30, 10, 1 입니다. 위치는 (-5,-5,-5 ) , (25,-5,-5)로 만들어줍니다.
그리고 각각 위에 처럼 박스 콜라이더를 추가하고 Z 값은 10으로 놓습니다.
빈게임 오브젝트를 만들고 GroundManager로 이름짓고 CsGroundManager 스크립트를 생성해주고 할당합니다.
그리고 위에 만든 A_Ground와 B_Ground를 자식으로 놓습니다.
CsGroundManager.cs의 내용입니다.
A_Type에는 히어라이키 탭에있는 그라운드를 넣어주고
Grounds 배열에는 프리팹을 넣어줍니다.
'유니티 > 스크립트' 카테고리의 다른 글
| 레이어 끼리의 충돌 무시하기 (0) | 2014.02.05 |
|---|---|
| 유니티 내에서 List 사용시 (0) | 2014.02.04 |
| 반복되는 배경 만들기(무한 스크롤링) - 근경 (0) | 2014.02.04 |
| 반복되는 배경 만들기(무한 스크롤링) - 원경 (6) | 2014.02.04 |
| 글자 크기를 점점 커지게 하면서 사라지게 하기 (0) | 2014.02.03 |
| 게임 매니저에서 FSM 으로 게임 분기 처리하기 (0) | 2014.02.03 |


