ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Unity零基础入门实操:安装、界面、C#脚本与摄像机跟随

Unity零基础入门实操:安装、界面、C#脚本与摄像机跟随 先跟各位说个实话Unity 下载下来装好了第一次打开编辑器满屏英文面板往那一摆百分之八十的新手第一反应都是“我该点哪儿”。这不是你笨是这工具的信息密度太高Graphic 视图、Hierarchy、Inspector、Project 面板挤在一起光看界面就想关掉。但你要是拆开看本质Unity 说白了就三件事摆东西、写逻辑、调效果。把它当工具箱而不是当软件学入门会顺畅得多。这篇就是系列第一篇面向完全零基础、甚至没写过几行代码的人。我会把安装、界面、第一个小游戏 Demo、C# 脚本的基础姿势一次讲透顺手把热词里大家最爱搜的“Unity下载教程”“Unity 2022中文版”“摄像机跟随”“UI显示隐藏”这些点用入门级的方式先串一遍。目标是让你花一个周末亲手跑起来一个能玩的小项目而不是停留在看教程、收藏教程、然后吃灰。1. 装之前先把版本搞清楚Unity Hub、LTS 和模块勾选1.1 为什么我不建议你直接搜“Unity下载”很多人打开浏览器就搜“Unity下载”然后点进某个下载站装了个来路不明的“中文版”。这是新手踩的第一个大坑。Unity 官方中国区的下载入口在国际版和国内版之间有区别但你现在只需要记住一条原则任何第三方整合包、破解版、绿色版都不碰直接从 Unity 官网或者 Unity 中国官网下载 Unity Hub。Unity Hub 不是编辑器本身它相当于一个“启动器 版本管理器”。你以后可能同时需要 2021、2022、2023 好几个版本的项目Hub 可以并列安装、自由切换。很多老项目用的版本和新项目不一样没有 Hub 你后面会哭的。1.2 LTS 版本和最新版怎么选Unity 每年发布好几个版本版本号后面带 f1 的是正式版Unnamed 的或者带 alpha/beta 的是预览版。命名规则是“年份.大版本.小版本”比如 2022.3.45f1前面的 2022 是年份3 是技术版本45 是补丁号f1 代表正式发布。对于新手我只推荐一个选择路径目的推荐版本理由学入门、做小项目2022.3 LTS 或 6000.x LTSLTS 是长期支持版稳定教程适配多做微信小游戏、接广告2022.3 LTS微信小游戏打包工具链对 2022 支持成熟尝鲜新功能最新正式版但教程少坑多不建议新手用它入门有个热词是“neat - unity 6000.3.9f1”6000 系列是 Unity 6 时代的版本号规划Unity 从 2023 年之后把版本命名调整成了 6000.x。你如果看到教程里写 2022 或者 6000都是新体系里的正式版本别被数字吓到。新手直接选带 LTS 标记的最新一档就行因为网上绝大多数教程都是基于 LTS 录的。1.3 装的时候模块怎么勾别全选在 Unity Hub 里安装编辑器时会让你勾选模块。新手最容易犯的毛病是“全都勾上”——好家伙Android、iOS、WebGL、Windows Build Support、文档、语言包全选装完占了几十个 G而且很多模块你现阶段根本用不到。下面是我建议的最小组件清单Visual Studio 或者 VS Code写 C# 脚本用二选一即可建议 VS Code 轻量些Windows Build Support (IL2CPP)如果后续要发布 Windows 游戏勾这个Documentation离线文档遇到问题直接本地查强烈建议勾简体中文语言包编辑器界面切中文用安卓、iOS 的构建模块等你真做到要出手机包了再回来装几分钟的事现在占着硬盘纯属浪费。Mac 用户如果是 Intel 芯片注意系统版本要在官方支持列表内有些老 Mac 升级系统之后装不了新版编辑器这时候退回 Unity 2021 LTS 反而更省心。1.4 编辑器界面切中文的方法Unity 2022 之后官方语言包支持得挺好的装的时候勾选了中文语言包打开 Edit → Preferences → Languages把 Editor Language 切到中文重启一下就是中文界面。切完之后再看那些面板压力会小很多。不建议你长时间依赖中文界面因为查资料的时候教程截图基本都是英文面板早晚要对上号。但我也不反对新手期先切中文降低门槛关键是每个英文面板术语和中文对应关系心里有数。2. 第一次打开编辑器五个面板搞懂之后再动手2.1 布局是 Unity 的“工作台”不是摆设第一次新建项目你会看到下图这个默认布局。别慌Unity 的界面逻辑其实特别清晰——左边是场景里有什么右边是选中的东西怎么样下面是全部资源中间是编辑视口。跟 Photoshop 的图层、属性、素材库逻辑几乎一模一样。五个核心面板先记住Hierarchy层级当前场景里所有物体的列表。模型、灯光、摄像机、空物体全在这。Scene场景三维视口像搭积木一样摆物体。新手 90% 的操作在这里完成。Game游戏摄像机拍到的画面运行游戏时看的就是这个。Inspector检查器选中 Hierarchy 里任何一个物体它的所有组件、属性都堆在右边这一栏。Project项目整个工程的资源库模型、贴图、脚本、音频都在这管理。你上手后要学会的第一套肌肉记忆是在 Hierarchy 里点东西右边的 Inspector 就会显示出它的属性在 Project 里拖资源进 Scene场景里就多一个物体。这套交互逻辑贯穿 Unity 的所有操作后面不管做多复杂的东西本质都是这套“点选-修改-放置”的循环。2.2 场景操作的基本功右键、滚轮、QWE在 Scene 面板里第一件事不是拖物体而是学会看鼠标左键在空白处拖拽框选物体鼠标右键拖拽旋转视角像转动脑袋看场景鼠标中键拖拽平移视角滚轮滚动缩放视野按住鼠标右键 WASD第一人称飞行模式可以在场景里“飞着逛”新手一定要试一下特别上瘾工具栏上的 Q手掌平移视图、W移动物体、E旋转、R缩放是日常四件套。选一个物体按 W拖拽三维箭头就能移动它按 E 拖拽弧线就能旋转。这四把“工具”就好比你的手、眼、尺子前期不用死记快捷键多用几遍自然就熟了。2.3 创建物体的两种方式在 Hierarchy 里点右键弹出菜单里能创建 Cube、Sphere、Capsule、Plane、Light、Camera 这些基础物体。另一种方式是直接在菜单栏 GameObject → 3D Object 里选。创建一个 Cube 出来Inspector 里就会出现 Transform、Mesh Filter、Mesh Renderer、Box Collider 这些组件。这里插一句热词里的“unity renderer的包围盒”——你在 Scene 里选中一个物体时能看到一个半透明的方框把物体包住这就是渲染包围盒用来做剔除和碰撞检测的边界估算。新手不用纠结它的原理只要知道选中物体后那个灰色线框不是出 bug 了就行那是 Unity 在提示你“这个物体的空间范围大概有多大”。3. 亲手做第一个小 Demo小球吃金币的完整过程3.1 项目思路为什么第一个项目要做“运动 碰撞 UI”光看不练是学不会 Unity 的。我先给你定一个特别经典、5 分钟就能跑通的小游戏用方向键/WASD 控制一个小球在平面上滚来滚去碰到金币就得分摄像机跟着小球走。这个 Demo 踩中了 Unity 最核心的三块内容刚体物理系统球为什么能滚动、为什么撞到墙会弹开C# 脚本通信键盘输入如何转成物体运动检测碰撞如何触发事件UI 系统分数怎么实时显示在屏幕上这三个能力模型做完之后你已经能看到 Unity 开发的基本流程了搭场景、写逻辑、看效果、调细节。后面所有项目不管多复杂本质上都在反复走这条链路。3.2 搭场景地板、小球、金币、灯光和摄像机打开新项目默认场景里只有一个 Main Camera 和一个 Directional Light。现在按以下步骤搭场景铺地板Hierarchy 右键 → 3D Object → Plane。Plane 默认是 10x10 的平面把它放到原点 (0, 0, 0)作为地面。建墙壁再创建 4 个 Cube压扁拉长围在平面四周当墙。这么做是为了让小球不会滚出边界省得设计落体逻辑。Cube 的 Transform 尺寸直接改 Scale。放小球创建 SphereScale 设为 (1, 1, 1)位置放在 (0, 1, 0)——Y 轴设为 1 是让球刚好悬空地平面一点点避免一开始就和地板卡死。做金币创建多个小的 Sphere 或者 Cube缩放到合适大小摆在地板上的不同位置。材质先不管后面统一处理颜色区分。调灯光和摄像机默认的方向光足够照亮整个场景可以不动它。摄像机先放在一个能俯瞰全局的位置角度稍偏向地面之后我们会写脚本让它跟着小球。一个大原则GameObject 的名字一定不要偷懒别叫什么 Sphere (1)、Sphere (2)全部改成 Player、Coin、Wall、Ground。项目一旦变大命名混乱会让你连找东西都变成灾难Unity 项目规范化第一步就是命名规范化。3.3 给球加刚体为什么必须加 Rigidbody想让小球有物理效果不是给球模型贴上“物理”标签而是要在球上挂一个叫Rigidbody刚体的组件。在 Hierarchy 里选中球Inspector 底部点 Add Component搜“Rigidbody”回车。添加之后Inspector 里会出现 Mass、Drag、Angular Drag、Use Gravity 等一堆选项。新手默认保持全部默认值就行。我提几个关键参数代表的意思Mass质量物体轻重影响碰撞时的反应默认 1 够用。Use Gravity使用重力开启后物体受重力影响。小球在这个项目里 Y 轴方向被地板挡住不会一直往下掉所以勾着没问题。Constraints约束可以冻结某个轴的位置或旋转。比如在 2D 横版项目里经常冻结 Y 轴位置和 Z 轴旋转防止角色歪倒。这个项目里暂时不用改。为什么加刚体因为如果没有刚体你用手写代码让球移动那叫“瞬移”或者“平移”没有物理交互——不会和地板产生碰撞、不会被墙挡住、更不会滚动。加了刚体之后Unity 的物理引擎PhysX就接管了这个小球的运动你做的是“推它一把”它自己会顺着物理规律走这比手写碰撞检测靠谱无数倍。3.4 写第一个 C# 脚本让小球动起来在 Project 面板里右键 → Create → C# Script命名 PlayerController。双击打开会默认弹出一段模板代码这里重点看两个方法using UnityEngine; public class PlayerController : MonoBehaviour { // Update 在每一帧被调用 void Update() { // 这里写每帧执行的逻辑 } // FixedUpdate 以固定频率被调用和物理计算同步 void FixedUpdate() { // 物理相关的移动放在这里更稳定 } }新手最大的认知误区是把所有逻辑都堆在 Update 里。Update 每秒调用几十次适合处理输入、动画、UI 这些依赖帧率的内容而物理运算要放在 FixedUpdate 里因为它的调用频率是固定的默认 50Hz不会因为电脑卡顿导致物理表现不一致。控制小球滚动的逻辑我要用“刚体受力”而不是“直接改位置”的方式。直接改 Transform 位置能让球瞬移但和物理系统不兼容会出现穿墙、抖动。正确做法是给刚体一个速度using UnityEngine; public class PlayerController : MonoBehaviour { public float moveSpeed 10f; private Rigidbody rb; void Start() { rb GetComponentRigidbody(); } void FixedUpdate() { float horizontal Input.GetAxis(Horizontal); float vertical Input.GetAxis(Vertical); Vector3 movement new Vector3(horizontal, 0f, vertical); rb.AddForce(movement * moveSpeed); } }这段代码逻辑很直白获取水平和垂直输入轴——对应键盘的 A/D 或左右方向键、W/S 或上下方向键——组装成一个三维向量再把这个向量作为力加到刚体上。AddForce 是给刚体施加一个持续的推力所以球会从静止慢慢加速而不是瞬间达到最大速度手感上更接近真实的物理滚动。我每次教新手写这段代码都会专门提醒一句不要随便想一个变量名比如rb2之类的保持风格一致等整个项目脚本变多之后命名不一致会让自己都找不到北。公共变量moveSpeed设成 public是因为公众变量会直接暴露在 Inspector 面板上这样你不改代码、双击脚本就能在面板里调速度——这是 Unity 开发最舒服的地方之一。3.5 做金币和碰撞检测OnTriggerEnter 的三种碰撞方案回到 Unity 编辑器把 PlayerController 拖到球上或者选中球Add Component → Player Controller。现在按播放键你会发现球已经能用方向键驱动了但会直接穿过金币——因为我们还没写碰撞逻辑。金币这块我推荐用 Trigger触发器而不是普通碰撞。做法是选中金币物体Inspector 里把 Sphere Collider 的 Is Trigger 勾上。勾上之后这个物体会变成一个“看似有边界、但不会挡住任何东西”的透明区域当球滚进去时引擎会通知我们“有东西进来了”——这个回调就是OnTriggerEnter。创建一个新的 C# 脚本 Coin 或者直接写在 PlayerController 里我建议分开方便理解。Coin 脚本的完整写法using UnityEngine; public class Coin : MonoBehaviour { private void OnTriggerEnter(Collider other) { if (other.CompareTag(Player)) { Destroy(gameObject); // 通知计分系统这里先用静态变量凑合 ScoreManager.score 1; } } }这里有个前提小球需要打上 “Player” 标签。在 Hierarchy 里选中球Inspector 顶部 Tag 下拉选 Add Tag新建一个 Player 标签再在 Tag 下拉里给球选中它。这样其他物体碰到球时能通过 CompareTag 一步识别是不是玩家。关于碰撞Unity 里其实有三套交错逻辑新手容易混情况回调函数适用场景触发触发都不是触发器OnCollisionEnter普通碰撞球撞墙、人物撞箱子触发碰撞一方是触发器OnTriggerEnter进区域、踩金币、进感知范围通过物理射线检测Raycast鼠标点击物体、开枪命中检测后面进阶再说你在网上看到“Unity 碰撞检测不生效”八成就是触发器跟普通碰撞混用了。记住一个口诀有 Rigidbody 的物体之间用 OnCollision至少一方是 Trigger 时用 OnTrigger。小球有刚体金币是触发器所以金币用 OnTriggerEnter 是最合适的。3.6 分数 UI从建 Canvas 到 TMP 组件接下来做 UI。先在 Hierarchy 右键 → UI → CanvasUnity 会自动创建一个 Canvas 和一个 EventSystem。Canvas 是 UI 的“画布”所有屏幕上的文字、按钮、图片都挂在这下面。EventSystem 负责处理鼠标点击和触摸事件暂时不用管它。再在 Canvas 下右键 → UI → Text - TextMeshProTMP。TMP 是新的文字组件渲染效果好取代了老的 UI Text。如果是第一次用它会提示你 Import TMP Essentials点导入即可。把文字位置调到你想要的角落然后新建一个 ScoreManager 脚本挂到一个空物体上using UnityEngine; using TMPro; public class ScoreManager : MonoBehaviour { public static int score 0; public TMP_Text scoreText; void Update() { scoreText.text 得分: score; } }TMP 的 Text 组件要在代码里拖进 ScoreManager 的 scoreText 字段或者用 FindObjectOfType 查找但新手直接拖最直观。这段代码里用一个静态变量管理分数虽然不算最优解但入门阶段够用且好理解——每个金币被吃时ScoreManager.score 1UI 每帧读取并显示。等你后面学会事件系统再考虑用更干净的架构。3.7 摄像机跟随三行代码但很多人写错热词里“unity摄像机跟随”是被搜烂的题目。很多人写摄像机跟随喜欢这么写void Update() { camera.transform.position player.transform.position; }然后发现画面抖动得厉害或者镜头平移得很生硬。原因在于把相机位置直接等于玩家位置零延迟的刚性跟随人眼反而会觉得“晃”。摄像机是出画面的眼睛眼睛不能被“拖着走”要有缓冲。更舒服的做法是用线性插值 Lerp让摄像机位置每一帧朝玩家位置平滑靠近public class CameraFollow : MonoBehaviour { public Transform target; public Vector3 offset new Vector3(0f, 5f, -10f); public float smoothSpeed 0.125f; void LateUpdate() { Vector3 desiredPosition target.position offset; Vector3 smoothedPosition Vector3.Lerp(transform.position, desiredPosition, smoothSpeed); transform.position smoothedPosition; transform.LookAt(target); } }注意这里用的是 LateUpdate而不是 Update。LateUpdate 在所有 Update 执行完之后才执行能保证玩家的移动先发生相机再跟着动这样就不会出现“画面追人”的滞后感。把 CameraFollow 脚本挂到主摄像机上在 Inspector 里把 Player 物体拖到 target 字段运行一次你会明显感受到镜头跟随的质感完全不同了。一个不起眼的小区别就是菜鸟作品和稍微像样的作品之间的分水岭。4. 别急着学 Shader新手最容易走偏的路4.1 热搜词里那些“高阶内容”离你有多远我看了一眼这次题目里附带的那些热搜词什么 “unity shader”、“unity数字孪生”、“cesium for unity 调用离线地图”、“unity混淆”、“unity微信小游戏打包”、“Pico4开发unity”。这些词如果从零开始学每个都是一个大坑。实话说我在带新人的时候最常看到的局面就是**入门第三天就开始问 Shader入门第五天开始碰微信小游戏打包第八天想用 Cesium 做数字孪生。**然后卡住放弃。原因不是他们笨是这些方向全都建立在比较扎实的 Unity 基础之上。Shader 需要线性代数和图形学基础微信小游戏需要先会 UI 和资源管理还要了解小游戏平台适配数字孪生更是需要熟悉 URP/HDRP 渲染管线、以及 GIS 坐标系的概念。这些内容值得学但在“Unity入门一”这篇里我不会展开讲。你需要的是先建立一个“学习地图”知道哪些东西排在后面。4.2 你真正该在入门阶段掌握的知识点清单按我的经验新手从零到能独立做一个小游戏需要按这个顺序走最顺畅GameObject 和 Component 的关系Transform、Collider、Rigidbody、Renderer 各自干嘛场景搭建与预制体 Prefab 的思维——把重复的物体做成模板C# 基础变量、方法、类、if 判断、for 循环以及 MonoBehaviour 的生命周期输入系统Input.GetAxis、Input.GetKeyDown再到新 Input SystemUI 系统Canvas、TMP、Button、布局组件动画系统基础Animator、状态机热词里的 timeline 再往后放物理系统进阶射线检测、碰撞矩阵、物理材质资源管理AssetBundle、Addressables等作品体量上来了再学性能优化入门Draw Call、合批、LOD、对象池这九块东西每一项都能做一整篇或一整组文章也是你后续接触 “unity gameassembly.dll的作用”、“unity游戏优化”、“unity tooltips插件” 这些主题的前提。就好像你学驾照总得先学会挂挡打方向再考虑漂移和跑赛道对吧。4.3 用 Package Manager 补齐常用工具链Unity 最舒服的一点是官方把很多扩展能力做成了 Package在 Window → Package Manager 里随时安装。新手建议把下面几个包提前装好很多日常开发都会用到Input System新一代输入系统处理键盘鼠标手柄触摸更统一等你做完第一个 Demo 再切换也不迟前期用老输入就够了Cinemachine智能相机系统做镜头跟随、过场、碰撞避免都更省事配合早期那版手写的 CameraFollow你用完之后会感叹“我手写的是啥”Post Processing / URP后处理效果Bloom 辉光、颜色校正、AO 环境光遮蔽能一下子拉高画面质感TextMeshPro文字显示新标准前面已经用过了4.4 关于 GameAssembly.dll 和混淆这些词先记住它们属于哪个阶段热门词里有一条 “unity gameassembly.dll的作用”还有个 “unity混淆”。这两个东西放一起说特别有意思。游戏中所有 C# 代码在打包时会被编译成 IL中间语言并打进一个叫 GameAssembly.dll 的本地库里。普通玩家如果拿到这个 dll用反编译工具能直接看到你的 C# 源码逻辑、变量、字符串——所以很多商业项目在打包时会做混淆Obfuscation让反编译出来的代码变得面目全非增加逆向难度。但这是你做到游戏要发布、要上线、要考虑被破解那个阶段才需要关心的。入门期间你只需要知道只要你的项目最终要发布给别人玩GameAssembly.dll 就一定会存在混淆是商业项目常态化的一步但不是新手阶段的首要任务。过早接触这些只会让你膨胀又迷茫。我跟很多新人讲过一句话入门阶段最大的敌人不是知识太难而是“什么都想要”。你把打基础的时间线拉到三个月每天能踏实学两三个小时三个月后的水平一定甩开那个“第三周就在研究反编译”的别人一大截。5. 第一个小项目的调试习惯出 Bug 别慌按这个顺序来5.1 Console 面板是你的第一现场跑起来之后如果发现球不动、金币不消失、摄像机没跟第一步永远是打开 Console 面板Window → General → Console或直接点底部 Console 标签。控制台里红色的报错、黄色的警告几乎 90% 的问题都会在这里留下线索。最常见的三个错误及其含义我列一下报错信息原因解决NullReferenceException你引用了一个空的变量比如没拖 target回 Inspector 检查引用是否都拖了The name xxx does not exist in the current context脚本里有拼写错误或变量名写错了检查代码单词拼写Object reference not set to an instance of an object没 GetComponent 或者没把物体拖进字段确认字段有没有赋值新人遇到报错第一反应是“完蛋了”然后关掉。我强烈建议你反过来把报错当成导航。Unity 的 Console 报错信息里会告诉你是哪个脚本的第几行出了问题点一下报错编辑器还能直接帮你跳到对应代码行。这时候就一个词——读不是删。读懂了才知道哪里改。5.2 Debug.Log 是你最好的朋友很多时候代码没报错但就是工作不正常。这时候在怀疑的地方加一行Debug.Log(xxx)把关键变量的值打到 Console 里是成本最低的调试手段。比如球不移动你可以在 FixedUpdate 里打Debug.Log($Horizontal: {horizontal}, Vertical: {vertical});然后运行游戏按方向键看 Console 里有没有数字变化。如果一直输出 0那就是 Input 这块没识别到输入如果有数字但球不动那就去查刚体和 AddForce 的关系。这一步一步缩小范围的过程就是传说中的“定位问题”。5.3 一个小误区复制代码的时候引号变成中文引号我见过太多新人的代码报错是因为把网上的代码直接复制进了 Visual Studio结果里面的英文双引号被输入法自动替换成中文双引号“ ”。编译器不认识中文引号瞬间爆炸。解决办法很简单写代码时把输入法切成英文半角模式或者下载代码后先扫一眼引号是不是直直的。还有同样的问题出现在分号上——英文分号;和中文分号 看起来相似编译结果是天壤之别。这两个问题在论坛求助里出现频率高到离谱今天记一下以后能少踩坑。5.4 CtrlS 是一种信仰Unity 编辑器不像现代浏览器那样自动保存场景改了、脚本写了如果你不管它直接关掉一切归零。我见过新手做了 3 个多小时场景没保存然后软件崩溃当场崩溃的。所以从第一天就养成习惯每完成一个重要步骤CtrlS 保存场景Mac 是 CmdS。另外区分一下脚本的保存是自动的Visual Studio 里 CtrlS 保存代码但场景保存必须手动。Project 面板里场景文件通常叫 SampleScene.unity你 CtrlS 保存的就是它。6. 常见问题的工程级回避方案热词里那些高频坑的简单解法6.1 Unity 打不开 / 安装失败的排查链路热词里“unity安装”、“unity 2022中文版下载”、“mac pro intel 12.7.6 安装 unity 3d”这类问题其实集中在三步版本不匹配、模块缺失、路径问题。如果编辑器安装后打不开按这个顺序排查确认电脑系统版本满足要求。Windows 10/11 是首选Mac 注意 Intel 和 Apple Silicon 芯片对应不同的安装包如果是 Intel 的老机器新版可能带不动建议选低一档的 LTS。检查显卡驱动和 DirectX 版本。Unity 编辑器需要 GPU 支持显卡驱动太旧会导致闪退或画面异常。直接看 Hub 的日志。Unity Hub 里每个已安装版本旁边有个齿轮图标里面能打开日志文件夹打开 Editor.log 查看真正报错原因。这个方法对很多疑难杂症都有效。终极方案把已安装的版本删除重新在 Hub 里安装安装时只保留必要的模块。我见过的最离奇的坑是用户电脑用户名是中文Unity 工程创建在中文路径下导致一些老版本插件读取不了。如果你也遇到奇怪的问题把工程路径全部改成英文项目名和文件夹名都别用中文。这个习惯请从第一天保持。6.2 “Unity 桌面美化”和界面备份搜索词里 “unity桌面美化” 其实挺有意思很多人想让自己的编辑器界面更好看。做法是 Window → Layout 可以切换不同的布局模板比如 2 by 3、Tall Split你自己调好布局之后Window → Layout → Save Layout 保存一份自定义布局。每台机器的布局偏好都不太一样比如我做 UI 的时候喜欢把 Game 窗口拖大放到旁边做场景的时候喜欢把 Scene 窗口最大化。这个因人而异但保存布局是提高效率的好习惯以后重装系统不会一切重来。6.3 分辨率和发布设置先学会运行预览很多新人在做小游戏的时候发现 Game 窗口里画面比例不对、UI 跑到奇怪的位置。这个和 Game 窗口顶部的分辨率选择有关。你可以随时切到 16:9、9:16 或者自定义分辨率预览不同设备下的效果。如果想发布成 Windows 程序先不管 Build Settings 里面复杂的选项只需记住File → Build Settings → 选择 PC, Mac Linux Standalone → Target Platform 选 Windows → Build。Build 出来的 exe 会放在你指定的文件夹里双击就能跑。第一次 Build 会比较慢因为它要把所有场景、资源、C# 编译打包到一起耐心等待。发布到 Web、安卓、微信小游戏这些是后面的进阶内容。至少等你能独立构建一个 Windows 包再扩展平台。7. 用一个“打造你自己小游戏”的作业巩固这篇的所有内容7.1 作业内容给别人看的教程很多但“自己动手完成一个变体”才能真正把知识长在身上。我建议你把这篇文章里的“小球吃金币”改造成一个有你自己印记的版本任务清单如下把小球换成方块或胶囊加入一个旋转的障碍物用 Cube 加旋转脚本或者直接给 Cube 挂一个 Rotate 脚本添加一个倒计时或计时器 UI比如“60 秒内吃到 10 个金币算过关”吃到特殊金币时屏幕上闪一下全屏变色摄像机跟随改成 Cinemachine 来实现7.2 通关标准做完之后你能回答以下几个问题就算这篇内容真正吃透为什么小球移动要放在 FixedUpdate 而不是 Update金币为什么要勾 Is Trigger如果不勾脚本要改成什么回调CameraFollow 里为什么用 LateUpdate换成 Update 会有什么视觉差异场景里的 GameObject 和组件 Component 是什么关系删掉 Rigidbody 后球会怎样打包后的 GameAssembly.dll 里装的是什么7.3 给下一期的预告这篇是 Unity 入门系列的第一篇你已经把“搭场景、写脚本、做交互、看结果”这套基础闭环跑通了。第二篇我会重点讲预制体 Prefab 和血条 UI 的实现然后带到新 Input System 和 Cinemachine 这套更现代的工具链让你手写的那版 CameraFollow 直接升级掉。第三篇再进动画系统。如果你照着这篇做完了并且项目已经能跑起来我建议你先别急着看第二篇回头把 Demo 里每个组件都点开看一遍、删一删、改一改亲手制造几个 Bug 再修好它们——这个过程比任何教程都管用。Unity 入门不是看会的是摸会的。
返回列表