最初のシーン:平らな 3D の床
Assets/
Scenes/
Materials/
すでにあるものこのレッスンで追加
いよいよ作りましょう。このレッスンの目標は、平らな床が一枚あるだけの空の 3D シーンに、ライトを置き、カメラでそこを向けることです。
Plane は Y = 0 にある平らな面です。ゲーム中の他のものはすべてその上に立ちます。
プロジェクトを作る
- 1
Unity Hub → New project → テンプレートは Universal 3D(古いバージョンでは 3D (URP))。URP の方が見栄えがよく、モバイル側が求めるのもこっちです。
- 2
名前は UnityClass にしてください。パスにはスペースやアクセント文字、ベトナム語の文字を入れないでください。
- 3
開いたらまずシーンを保存: → Assets/Scenes/Arena.unity
床を追加する
- 1
と選ぶと、10×10 メートルの床が現れます。
- 2
Hierarchy で Floor に名前を変えます(ゆっくりダブルクリック、または F2)。
- 3
Inspector で Position を 0、0、0 に。Transform の見出しを右クリック → Reset を選べば一度で済みます。
- 4
Scale を 3、1、3 にすると床は 30×30 メートル。Plane は Scale 1 の時点で 10 メートルあります。
マテリアルを当てよう
マテリアルとは、オブジェクトの色と表面のことです。mesh が形を与え、マテリアルが見た目を与えます。
- 1
Project で を選び、名前は M_Floor にします。
- 2
Base Map の色を濃いグレー(#2B3040)に、Smoothness を 0.2 前後に設定します。
- 3
Project ウィンドウから M_Floor を直接ドラッグし、Scene ビューの床に落とします。
オプション:グリッドの texture で移動が見えるように
模様がない単色の床だと、キャラクターが動いているのか止まっているのか判断できません。
市松模様の texture を何か置いて Tiling を 10、10 にすれば、床の動きが一目で分かります。
カメラとライト
- 1
Main Camera を選んで Position を 0、12、-14、Rotation を 35、0、0 に。上から見下ろす斜めのアングルで、全体が見やすくなります。
- 2
もっと速い方法:Scene ビューを好きな位置に動かしてからカメラを選び、(Ctrl/Cmd+Shift+F)。
- 3
Directional Light は最初からシーンにあります。50、-30、0 あたりに回すと影がいい感じになります。
任意:コードで床を生成する
using UnityEngine;
public class FloorBuilder : MonoBehaviour
{
public Material floorMaterial;
public float sizeInMeters = 30f;
void Start()
{
GameObject floor = GameObject.CreatePrimitive(PrimitiveType.Plane);
floor.name = "Floor";
floor.transform.position = Vector3.zero;
floor.transform.localScale = Vector3.one * (sizeInMeters / 10f); // plane = 10 m
if (floorMaterial != null)
floor.GetComponent<Renderer>().material = floorMaterial;
}
}