U
章 01基础11 课 — 点击打开
06 / 11 · 8 分钟
基础

第一个场景:一片平的 3D 地面

到目前为止的项目

Assets/

Scenes/

Arena.unity
FloorMain CameraDirectional Light

Materials/

M_Floor

你已经有的这一课新增

动手做吧。这节课的目标:一个空 3D 场景,里面有一块平地板、一盏灯,还有一台对着它的相机。

动态图解

Plane 就是位于 Y = 0 的一张平面。游戏里其他东西全都站在它上面。

创建项目

  1. 1

    Unity Hub → New project → 选 Universal 3D 模板(旧版本里叫 3D (URP))。URP 更好看,也是移动端要用的。

  2. 2

    名字填 UnityClass。路径里不要有空格、变音符号和带声调的越南文字。

  3. 3

    打开后先把场景存下来:File▸Save As → Assets/Scenes/Arena.unity

添加地板

  1. 1

    GameObject▸3D Object▸Plane —— 出现一块 10×10 米的地板。

  2. 2

    在 Hierarchy 里把它改名为 Floor(慢慢双击,或者按 F2)。

  3. 3

    在 Inspector 里把 Position 设为 0, 0, 0。右键 Transform 那一行的标题 → Reset,一步到位。

  4. 4

    把 Scale 设成 3, 1, 3 → 地板就变成 30×30 米。Plane 在 scale 1 时本来就有 10 米。

给它一个材质

材质就是一个物体的颜色和表面。mesh 决定它的形状,材质决定它的长相。

  1. 1

    在 Project 里:Assets▸Create▸Material,命名为 M_Floor。

  2. 2

    把 Base Map 调成深灰(#2B3040),Smoothness 设成 0.2 左右。

  3. 3

    从 Project 窗口把 M_Floor 直接拖到 Scene 视图里的地板上。

可选:网格纹理,让移动看得出来

  • 地板如果是纯色的,你根本看不出角色有没有在动。

  • 随便拿一张方格 texture,把 material 的 Tiling 设成 10, 10,一眼就能看出来。

相机和灯光

  1. 1

    选中 Main Camera,Position 设 0, 12, -14,Rotation 设 35, 0, 0 —— 从斜上方俯视,很清楚。

  2. 2

    更快的做法:先把 Scene 视图调到你喜欢的角度,选中相机,然后 GameObject▸Align With View(Ctrl/Cmd+Shift+F)。

  3. 3

    Directional Light 场景里本来就有。把它旋到 50, -30, 0 左右,阴影会好看。

可选:改用代码搭地板

FloorBuilder.cs — attach to an empty GameObject
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;
    }
}