「毎日Unity」の技術ブログ

開発で役立つ情報を発信する

【UnityC#】Cubeの各面に異なるテクスチャを貼る方法

Cubeの各面に異なるテクスチャを貼る方法を記事にしました。

[ 貼る方法 ]

まず、UnityEditorを起動し下記の画像のように適当にMaterialを作成します。
f:id:EDunity:20200530145731p:plain
次に、下記の画像をUnityEditorにインポートします。
f:id:EDunity:20200530145859p:plain
次に、下記の画像のように先ほど作成したMaterialのAlbedoにインポートした画像をぶち込みます。
f:id:EDunity:20200530150023p:plain
次に、下記のスクリプトを作成します。

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

public class ScriptTest : MonoBehaviour
{
    private Vector2[] UV = new Vector2[24];

    void Start()
    {
        //上面
        UV[4].x = 0 / 6.0f; UV[4].y = 0;
        UV[5].x = 1 / 6.0f; UV[5].y = 0;
        UV[8].x = 0 / 6.0f; UV[8].y = 1;
        UV[9].x = 1 / 6.0f; UV[9].y = 1;
        //前面
        UV[19].x = 2 / 6.0f; UV[19].y = 0;
        UV[17].x = 1 / 6.0f; UV[17].y = 1;
        UV[16].x = 1 / 6.0f; UV[16].y = 0;
        UV[18].x = 2 / 6.0f; UV[18].y = 1;
        //後面
        UV[23].x = 3 / 6.0f; UV[23].y = 0;
        UV[21].x = 2 / 6.0f; UV[21].y = 1;
        UV[20].x = 2 / 6.0f; UV[20].y = 0;
        UV[22].x = 3 / 6.0f; UV[22].y = 1;
        //右面
        UV[6].x = 3 / 6.0f; UV[6].y = 0;
        UV[7].x = 4 / 6.0f; UV[7].y = 0;
        UV[10].x = 3 / 6.0f; UV[10].y = 1;
        UV[11].x = 4 / 6.0f; UV[11].y = 1;
        //左面
        UV[2].x = 5 / 6.0f; UV[2].y = 1;
        UV[3].x = 4 / 6.0f; UV[3].y = 1;
        UV[0].x = 5 / 6.0f; UV[0].y = 0;
        UV[1].x = 4 / 6.0f; UV[1].y = 0;
        //下面
        UV[15].x = 6 / 6.0f; UV[15].y = 0;
        UV[13].x = 5 / 6.0f; UV[13].y = 1;
        UV[12].x = 5 / 6.0f; UV[12].y = 0;
        UV[14].x = 6 / 6.0f; UV[14].y = 1;

        this.gameObject.transform.GetComponent<MeshFilter>().mesh.uv = UV;
    }
}

次に、下記の画像のようにCubeを作成して、先ほど作成したスクリプトとMaterialをアタッチします。
f:id:EDunity:20200530150509p:plain
最後に、UnityEditorを再生してみてください。下記の画像のようにCubeの各面が異なるテクスチャになったと思います。
f:id:EDunity:20200530150653p:plain
Cubeの各面の色や模様を変更したい場合は、MaterialのAlbedoにぶち込む画像を編集ソフトで好きなようにして下さい。