第2章:项目与场景管理

好,咱们直接进入正题。这一章要聊的,是Unity里最基础、也最容易被忽视的两个东西——项目和场景。

你可能觉得,不就是新建个文件夹、拖几个模型吗?有什么好讲的?

嗯,我刚开始学的时候也这么想。直到有一次,我辛辛苦苦做了两周的关卡,因为场景文件损坏,全部白费。从那以后,我才真正重视起项目管理和场景操作。

2.1 创建与管理项目

先说说项目。Unity里的项目,说白了就是一个完整的游戏工程文件夹。里面包含了你的代码、资源、场景、设置……所有东西。

创建项目的正确姿势

打开Unity Hub,点击「新建项目」。你会看到一堆模板:3D、2D、3D URP、HDRP……

我个人习惯,新手阶段直接用「3D Core」模板。为什么?因为它最干净,没有多余的东西。URP和HDRP虽然画面更好,但会引入额外的渲染管线概念,容易把人搞晕。

模板选好后,给项目起个名字。注意:不要用中文。这不是歧视,是Unity对中文路径的支持确实不好。我曾经有个项目叫「我的第一个游戏」,结果打包时各种报错,改回英文就好了。

位置选个你记得住的盘,别放C盘,你懂的。

项目结构管理

项目创建后,你会看到Assets文件夹。这里就是你的战场。

我建议你从一开始就养成分类的习惯:

  • Scenes:放所有场景文件
  • Scripts:放C#脚本
  • Materials:放材质
  • Models:放3D模型
  • Textures:放贴图
  • Prefabs:放预制体
我的小技巧:每个文件夹前面加个数字编号,比如「01_Scenes」「02_Scripts」。这样在Project面板里,文件夹会按你想要的顺序排列,而不是按字母顺序乱糟糟的。

2.2 场景的概念与创建

场景是什么?你可以把它理解成游戏的一个关卡、一个界面、或者一个房间。

一个游戏可以由多个场景组成。比如:

  • 开始菜单场景
  • 关卡1场景
  • 关卡2场景
  • 游戏结束场景

每个场景都是独立的,但可以通过代码互相切换。

创建新场景

在Project面板里,右键 → Create → Scene。或者直接用快捷键 Ctrl+N(Windows)/ Cmd+N(Mac)。

新建的场景默认叫「SampleScene」,我建议你立刻改名。比如「Level_01」或者「MainMenu」。别偷懒,不然项目大了你根本分不清哪个是哪个。

场景的组成

一个场景里可以放:

  • 3D/2D物体(Cube、Sphere、Sprite等)
  • 灯光(Directional Light、Point Light等)
  • 摄像机(Camera)
  • 音频源(Audio Source)
  • UI元素(Button、Text等)
  • 空对象(Empty Object,用来做容器或挂脚本)

说白了,场景就是你的游戏世界。你在场景里放什么,玩家就看到什么。

2.3 场景的保存与加载

这个太重要了。我见过太多新手做了半天,结果没保存,一崩溃全没了。

保存场景

快捷键:Ctrl+S(Windows)/ Cmd+S(Mac)。

第一次保存时,Unity会问你保存在哪里。我建议统一放在Scenes文件夹里。

保存后,你会看到场景文件后缀是.unity。这就是你的场景文件,可以复制、备份、甚至发给别人。

血的教训:我曾经连续工作了4个小时没保存,结果Unity突然崩溃。嗯,那种感觉,就像写了一个小时的文档没保存突然断电。从那以后,我养成了「每做完一个操作就Ctrl+S」的习惯。你也应该这样。

加载场景

在Unity编辑器里,双击Project面板里的.unity文件,就能打开那个场景。

如果你想在游戏运行时切换场景,需要写代码:

using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneLoader : MonoBehaviour
{
    public void LoadSceneByName(string sceneName)
    {
        SceneManager.LoadScene(sceneName);
    }
    
    public void LoadSceneByIndex(int sceneIndex)
    {
        SceneManager.LoadScene(sceneIndex);
    }
}

注意:使用SceneManager之前,需要把场景添加到Build Settings里。否则会报错。

添加场景到Build Settings

菜单栏 → File → Build Settings → 把场景拖进Scenes In Build列表里。

这里有个坑:列表里的顺序就是场景的索引号。索引0是第一个,索引1是第二个,以此类推。如果你改了顺序,记得更新代码里的索引号。

2.4 场景视图操作

场景视图(Scene View)是你编辑游戏世界的地方。说白了,就是你的「上帝视角」。

平移(Pan)

按住鼠标中键(滚轮)拖动,就可以平移视角。

或者按住Alt键 + 鼠标左键拖动。

我个人习惯用鼠标中键,因为更顺手。你试试看哪个舒服就用哪个。

旋转(Orbit)

按住Alt键 + 鼠标左键拖动,视角会围绕一个中心点旋转。

这个操作在观察物体各个角度时特别有用。比如你放了一个角色模型,想看看背面长什么样,旋转一下就行。

缩放(Zoom)

滚动鼠标滚轮,就能拉近拉远视角。

或者按住Alt键 + 鼠标右键拖动,也可以缩放。

还有一个技巧:选中一个物体,按F键,视角会立刻聚焦到这个物体上。这个快捷键我一天能用上百次。

场景视图操作总结:
操作 快捷键 说明
平移 鼠标中键拖动 移动视角位置
旋转 Alt + 鼠标左键拖动 围绕中心旋转视角
缩放 鼠标滚轮 拉近拉远视角
聚焦 F键 选中物体后按F,视角聚焦

视图模式切换

场景视图右上角有个小工具栏,可以切换显示模式:

  • Shaded:显示材质和光照,最常用
  • Wireframe:只显示线框,看模型结构用
  • Shaded Wireframe:两者结合
  • 2D:切换到2D视图,做2D游戏时用

我一般默认用Shaded模式。只有在检查模型面数或者碰撞体时,才会切到Wireframe。

2.5 避坑指南

最后,分享几个我踩过的坑:

  • 场景文件不要放在根目录:一定要建个Scenes文件夹。不然项目大了,Assets里乱七八糟的,找个场景文件要找半天。
  • 不要用中文命名场景:虽然Unity现在对中文支持好了点,但打包到某些平台时还是会出问题。老老实实用英文。
  • 场景里不要放太多东西:一个场景里放了几百个物体,加载会变慢,编辑器也会卡。我建议一个场景控制在200个物体以内,多了就分场景。
  • 定期备份场景文件:复制一份.unity文件,改个名加个日期。万一场景坏了,还能找回之前的版本。

好了,这一章的内容就这些。项目管理和场景操作,看起来简单,但真的会影响你的开发效率。别嫌我啰嗦,把这些基础打牢,后面学起来会顺畅很多。

下一章,咱们聊聊GameObject和组件。那可是Unity的核心中的核心。