第一个场景:一片平的 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,把 material 的 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;
}
}