[Unity] 테레인을 반복하여 무한히 뻗은 바닥을 만든다

4579 단어 Unity
런계 게임을 만들 때 무한히 뻗어나가는 바닥을 만들고 싶다.
따라서 두 개의 지면을 반복적으로 보여줌으로써 지면을 무한히 뻗어 보려고 한다.

지상의 준비


바닥과 태그가 있는 큐브를 먼저 만듭니다.
GameObject > Create Other > Terrain
바닥을 추가합니다.취향에 따라 텍스쳐를 적당히 붙여주세요.
GameObject > Create Other > Cube
에 태그가 추가된 Cube입니다.
Cube의 설정은 Terrain의 한가운데에 있습니다.

Terrain을 시작하려면 먼저 다음 스크립트를 Terrain에 첨부하십시오.
MoveTerrain.cs

using UnityEngine;
using System.Collections;

public class MoveTerrain : MonoBehaviour {
    public float speed;

    // Update is called once per frame
    void Update () {
        transform.Translate (0, 0, speed);
    }
}

Cube를 Terrain 아래로 드래그하여 Terrain과 연결합니다.
그리고 그 테라인은 재활용이 용이하도록 미리 전경화했다.

지면 배치


사전 제작 후 원래 Terrain 제거
설치할 Terrain 프리셋 2개를 드래그합니다.
좌표는 (0, 0, 0) 및 (0, 02000)를 눌러 z 방향으로 2개를 배열합니다.

MainCamera의 위치(10000,30,0) 근처에 놓고 실행해 보세요.
두 개의 땅이 굴러와서 두 번째 땅이 지나면 끝난다.

중복 처리의 실현


첫 번째 테라인은 화면을 지나자마자 두 번째 화면의 깊은 곳으로 빠르게 이동했다
이런 처리를 반복하면 지면이 무한히 중복된다.
이전 스크립트를 (으)로 수정합니다.
MoveTerrain.cs
public class MoveTerrain : MonoBehaviour {

    public float speed;
    float size = 2000;  //NOTE!

    // Update is called once per frame
    void Update () {
        transform.Translate (0, 0, speed);

        if (this.transform.position.z + size < 0) {
            Debug.Log("out of display");
            this.transform.Translate(0, 0, size * 2);
        }
    }
}

주)float size = 2000;스크립트를 통해terain의 크기를 얻을 수 있습니까?누가 나에게 알려줄 수 있습니까>>
실행 후 지면은 무한히 중복될 것이다.

좋은 웹페이지 즐겨찾기