【Unity C# スクリプトでTerrain生成 1 】Terrainのサイズ設定

Unity C# スクリプトでTerrain生成 という題目で、シリーズで説明します。

インスペークターにあるツールを使わずに、スクリプトのみでTerrain を生成していきます

今回は、Terrainのサイズの設定をします。

開発環境
  • Windows10
  • Unity 2019.3.7f1
  • Microsoft Visual Studio Community2019
  • .NET Framework 4.8

空のTerrain を作成する

まずは空のTerrainを作成します。3Dのプロジェクトを作ったところからスタートします。( プロジェクトの作成方法は割愛 )

Hierarchy → SampleScene で右クリックし、GameObject → 3D Object → Terrain を選択します。すると、Hierarchy にTerrainオブジェクトが生成されます。

スクリプトを作成する

次にTerrainの設定をするためのスクリプトを作成します。

Terrain のinspector で一番下の Add Components のボタンをクリックします。

さらに、一番下のNew script を選択します。

名前を入力し、Enterを押すと、スクリプトが生成されているはずです。

サイズの設定をする

サイズの設定をするために、スクリプトを編集します。Terrain のオブジェクトを取得して行います。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TerrainScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // 1-1. オブジェクトを取得
        Terrain terrain = GameObject.Find("Terrain").GetComponent<Terrain>();

        // 1-2. サイズを設定する
        terrain.terrainData.size = new Vector3(400, 100, 300);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}

Start関数に処理を追加しました。

Start 関数

1. オブジェクト取得

Terrain を設定するためのオブジェクトをGameObjectのAPIから取得します。

2. サイズを設定する

取得したオブジェクトのterrainData のsizeを変更します。今回は、x軸の幅 400、y軸の幅100、z軸の幅300としています。

TerrainDataクラスのAPI はこちらを参考にしてください。

400m×300mのエリアに高さ100m の領域をTerrainとして設定したことになります。

実行して確認する

最後に設定が反映されるか確認します。

実行するためにPlayボタンを押します。

実行した後、Playボタンを再度押し、Senceで確認します。x軸の幅が400、z軸の幅が300になっています。

y軸については、Heightmap が未設定なので幅は0となっています。Heightmapは次回説明します。

また、Inspector の設定→ Meash Resolution ( On Terrain Data ) でも設定を確認できます。

まとめ

いかがだったでしょうか。

今回は、スクリプトでTerrain のサイズを設定する方法について説明しました。

次回は、Heightmapで高さを設定する方法を説明します。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です