简介这是一份吉林大学数字现实建模与仿真课程作业的Unity项目主题为寝室场景构建面向相关专业学生及Unity三维交互入门者。资源以zip压缩包形式上传大小约87.04MB解压后可直接查看项目结构由于平台暂未提供文件清单暂不展开内部文件类型。目前已有396人浏览学习适合用于课程设计参考或自主练习。项目内容覆盖从基础场景搭建、3D模型与材质纹理处理到C#脚本驱动的动态交互包括开关灯、物体移动等同时涉及碰撞检测、光照阴影、相机控制、动画系统与简单物理引擎应用展示了运用Unity完成数字现实场景的完整流程。读者可通过这套作业学习各组件在实际场景中的配合方式理解从建模思路到交互落地的技术路径为后续VR/AR开发积累基础。1. 冷启动这不只是建模题是把寝室搬成可交互的数字孪生现场第一次拿到“数字现实建模与仿真”作业时很多人把它理解成“用Unity把寝室画得像照片”。我见过太多小组在贴图上死磕了一个月交上去的demo却连门都推不开、灯也点不亮被老师一票否决。这门课要的不是静态效果图而是一个能走进去、能摸、能反馈的仿真环境——床能躺、椅子能拉、水龙头能出水、灯光能开闭这才是“数字现实建模与仿真”和传统建模课的本质区别。我当时做的方案很简单以吉林大学标准寝室为原型用Unity走完“现场测量→场景搭建→材质光照→交互仿真”整套流程核心资产全部用Unity内置几何体和少量外部模型拼出来不做超高精度的角色和特效把精力放在尺寸还原和交互逻辑上。这篇笔记就把我踩过的坑、调过的参数和最终能过审的做法完整拆给你适配那些同样要交Unity作业、又不想把时间烧在建模器里的学生。2. 建模之前先立规矩方案选型与Unity工程搭建2.1 先做减法不用高清模型用尺寸说话数字现实建模最容易犯的错是一上来就打开Blender想把每把椅子雕刻成电影道具。但仿真作业的评分点通常是“能否还原真实环境的行为”也就是人在寝室里的日常动线能不能在虚拟场景里重演。我建议把所有物件按重要程度分三档第一档是床、桌、柜、门这类必须参与交互的结构件用Unity内置Cube和Cylinder搭第二档是水壶、书包、书本这类摆放件用低模外部模型导入第三档是墙上的海报、窗外的远景直接贴图解决。这个决定直接影响到后续所有步骤。内置几何体拼装的物件天然自带参数化尺寸你不需要在建模软件里来回改网格直接在Inspector里调长宽高就能做尺寸校验。更重要的是Unity的内置几何体自动带Collider选项省去了给外部模型加碰撞体的麻烦——这里先记住一个结论作业阶段结构件越简单越好交互性比多边形数量值钱得多。2.2 Unity安装与版本选择不要追最新要追最稳我看到太多同学的第一个坑是安装Unity时直接选了最新Beta版结果第二天打开工程发现整个Project窗口是黑的或者导入的包和渲染管线不兼容。数字现实建模与仿真这种作业按部就班做完比炫技重要用稳定版本是最优解。我习惯用Unity Hub装2021 LTS并且安装时勾选“Windows Build Support (IL2CPP)”和“Visual Studio Community”这两个组件。前者是后期导出的刚需后者是第一方IDEC#脚本调试时断点体验比纯VS Code舒服太多。安装时还要注意Unity Hub的许可证激活——学生账号用Personal版即可这个版本出水印的问题我后面避坑章会专门讲怎么处理。工程创建阶段很多人随手新建一个3D Core模板就开干但模板选错会害死后期。我建议直接用Universal 3D模板对应的是URP渲染管线。原因很简单URP对低端显卡友好默认的Lighting和Post-processing配置够用而且实时光照的反馈速度快调一盏灯看一次效果迭代效率远高于内置管线。提示如果用内置管线做了一半再迁URP材质球全部要重连这个迁移成本在作业周期里几乎等于重做。选管线是一锤子买卖开档前想清楚。2.3 单位与坐标系统90厘米就是90厘米不要靠猜数字现实建模的“现实”二字功夫全在单位换算上。Unity默认单位是米但很多同学导入建模软件导出的模型时忘记缩放导致一张床变成了摩天楼。我一般这样定规矩1 Unity unit 1 米所有建模软件导出时统一按米为单位标准上床下桌的尺寸床板离地170cm床长200cm宽90cm桌面高度75cm椅子坐高45cm寝室房间净高按3米建模长宽按现场卷尺测得的数据不做美化。代码层面我也习惯在Editor里挂一个约束脚本每当调整物件尺寸时自动打印出实际长宽高用来对照测量记录。下面这个脚本可以挂到场景里的空物体上巡检所有标记为“寝室结构”的子物体using UnityEngine; public class SizeAuditor : MonoBehaviour { [Header(巡检开关)] public bool runOnStart true; // 是否在运行时自动巡检 public string tagFilter Dorm; // 只巡检带该标签的物件 void Start() { if (runOnStart) Audit(); } [ContextMenu(执行尺寸巡检)] void Audit() { GameObject[] all GameObject.FindGameObjectsWithTag(tagFilter); foreach (GameObject go in all) { Collider col go.GetComponentCollider(); if (col null) continue; Vector3 size col.bounds.size; Debug.Log(${go.name} 尺寸 - 长 {size.z:F2} m / 宽 {size.x:F2} m / 高 {size.y:F2} m); } } }这段脚本的核心逻辑是遍历所有被打上Dorm标签的物件取它们的Collider包围盒尺寸作为最终尺寸依据。注意我特意用了Collider.bounds而不是Transform.localScale原因是后者不包括父物体的缩放拼装床架时父物体一旦缩放子物体的localScale就不等于真实世界尺寸了。巡检结果和卷尺记录的对照表一比哪块尺寸跑了立刻就能揪出来。2.4 Assets目录规划一个场景一个文件夹脚本和材质不许混放工程一开始就分好目录结构后期不会出现“找某个材质球找了一小时”的惨况。我的组织方式是这样Assets/Scenes/存放主场景和备用测试场景Assets/Scripts/按功能分子目录Interaction/放门和灯的控制脚本Player/放摄像机漫游脚本Editor/放巡检类工具脚本Assets/Models/外部导入的低模物件按Furniture/、Decorations/分Assets/Materials/颜色材质和带贴图的材质分开建子目录Assets/Prefabs/所有经过拼装、能复用的组装体比如“一套上床下桌”是一个Prefab“一套寝室门”是另一个Prefab。Prefab化是这个阶段的最高优先事项。你把一张桌子调整到完美状态后把它拖进Prefab文件夹生成预制体之后复制到其他楼层、其他寝室就是拖一下的事改一处全部同步。3. 动手建模从地面到上床下桌把寝室拆成可拼装的模块3.1 先搭空间骨架地面、墙体、天花板与门窗洞口建模的起点不是床是房间外壳。创建一个空物体命名为DormRoot然后在其下用Cube搭建六面体空间。地面用Cube拉伸成长8m、宽4m、厚0.1m的薄板墙体的厚度我一般取0.2m——这是混凝土墙的常见厚度既能防止摄像机穿模的视觉穿帮又不至于让门窗洞口的处理变得太复杂。门窗洞口不要用布尔运算去扣Unity内置几何体没有布尔能力常用的做法是把墙拆成多段小Cube门洞左侧墙一段、门洞上方一段、右侧墙一段三块拼在一起。这样做的代价是多几个物体收益是所有墙体仍是通透的规则形状之后烘焙光照贴图时不会出现UV撕裂导致的暗缝。外墙搭完后给室内天花板装6盏筒灯位——我直接用Unity的Spot Light做成Prefab间隔均匀分布在一条直线上。这个动作很重要因为后续烘焙光照时实时光源的数量直接决定烘焙时间和噪点水平先把光源位置定死能少烘焙好几轮。3.2 上床下桌拼装结构分解与父子层级吉大宿舍的典型布局是上床下桌这是整个场景里最复杂的结构件。我的做法是把它拆成六个子模块床板、床柱、床梯、桌面、书架、衣柜。每个子模块都是一个或多个Cube的组合体全部挂在同一个空物体BedSet下面。床板是3个Cube拼的床框长200cm、宽90cm、厚5cm上面铺一层厚2cm的薄板作为床垫旁边加一条高10cm的护栏。床柱用4根Cylinder或者细Cube半径设为3cm高度从地面到床板底面也就是170cm。桌面在床的正下方高度75cm宽度和床等宽深度60cm。书架立在桌面靠墙一侧用5块薄Cube拼出三层隔板。拼这类结构件的核心技巧是始终在父物体的局部坐标系下调整子物体位置不要直接在世界坐标系里拖。比如床柱的四个脚点只要设成(±0.45, 0, ±1.0)这类相对床中心的值整个床就能在场景里整体平移而不散架。我一般会在拼装时把父物体放在原点位置所有子物体按局部坐标精确摆放拼完再做位置调整。3.3 外部模型导入Blender低模的导出参数椅子、行李箱、水壶这类曲面和不规则物件用Cube拼出来太假我选择在Blender里建低模然后导入Unity。这里最容易翻车的是导出设置——很多人从Blender默认导出OBJ结果Unity里模型大小完全不对材质也全丢。我的导入参数这样设Blender里统一按米制建模导出FBX格式勾选“仅选中物体”和“应用变换”。Unity这边导入设置里把Scale Factor设成1不要用默认的0.01材质命名和Blender里的材质名保持一致动画和Rig全部选None。导入后第一件事不是拖进场景而是先检查模型的包围盒尺寸。你可以在Unity的Project窗口选中导入的FBX在Inspector里查看“Bounds”参数然后和真实物件尺寸对照。如果尺寸差得离谱优先检查Blender里的单位设置是不是被改成了厘米而不是在Unity里缩放——因为缩放会污染碰撞体的物理参数后续做物理仿真时会出奇怪的问题。3.4 Collider布置策略少用Mesh Collider多用Box碰撞体是交互仿真的地基但很多同学为了“精准贴合”给每个模型都加了Mesh Collider结果运行时帧率暴跌物体还经常弹飞。原因很简单Mesh Collider按三角形面做碰撞检测一个5000面的椅子就是5000个碰撞面几个物件一叠物理引擎直接过载。我的策略是所有结构件一律用Box Collider尺寸比视觉模型缩水5%10%。比如椅子的视觉模型占地是50cm见方碰撞体就设成45cm见方。这样视觉上两个椅子看起来贴在一起但碰撞体之间还有一圈“空气墙”拖拽和推动时不会出现面面摩擦造成的抖动。只有地面和墙体这种需要完全阻挡的平面才用精确的Box Collider贴合。物理材质也值得花两分钟调一下。在Project窗口创建一个Physics Material动摩擦和静摩擦都设成0.4弹力设成0拖到地板和物体的Collider上。这个数值能让你推椅子时感受到合理的阻力又不会像冰面一样滑得停不住。数字现实仿真的“真”很大程度来自这些小参数。4. 材质、光照与烘焙让场景从“灰盒子”变成“数字现实”4.1 材质球体系URP下的双面材质与关键参数场景搭建完成后一切看起来灰蒙蒙的这是因为所有默认材质都是纯色的Universal Render Pipeline/Lit。我建议把材质按类别建几个基础模板木材表面、金属表面、塑料表面、布料表面。每个模板的基色和光滑度都按真实值去调不要偷懒只改颜色。木材材质基色用浅黄褐色Smoothness设0.25Normal Map选一个木纹贴图Tiling设成2×1。金属材质的Smoothness要拉到0.85以上基础色偏灰白这样衣柜把手和床柱才有高光。布料Smoothness设0.1再加一点细节法线。URP下渲染时窗帘这种单面平面模型很容易出现背面全黑的现象。这是因为URP的Lit材质球默认单面渲染法线反面的面直接丢弃。我一般在材质球的Surface Options里勾选Render Face → Both或者更彻底一点在ShaderGraph里给材质加一个双面开关。下面是URP ShaderGraph里最简双面设置的原理把Two Sided从Off切到On后背面会额外做一次法线翻转的光照计算画面视觉上表现为两面都有正确的光影而不是一面亮一面死黑。注意双面渲染会将绘制次数翻倍。窗帘和海报可以用但不要给地板和墙壁开双面完全不值得。4.2 光照布置主光、补光与阴影参数光照决定了“数字现实”的成色这也是我见过翻车最多的地方。很多同学直接在场景里拖一个Directional Light用默认参数结果要么全场景曝光过度要么阴影黑成一片完全看不清床底。我的布置顺序是先开Directional Light模拟窗外太阳光角度设在45度左右让光线从窗户一侧斜射进来色温用偏暖的日光白强度设1.2。然后关掉Directional Light的阴影先看整体曝光是否正常——这一步是为了隔离问题。如果场景过曝优先把环境光的Intensity从默认的1降到0.6而不是去降低平行光强度。室内灯光用点光源和聚光灯混合。每盏筒灯用Spot LightRange设3mSpot Angle设80度Intensity按每盏15lm左右调。当所有灯光都摆好、曝光正常后最后一步再打开Directional Light的阴影选择Shadow Quality → High。阴影分辨率按顺序调到2048或更高直到你蹲下去能看到床腿下的清晰投影。4.3 光照贴图烘焙静态与动态分离实时阴影的质量上限很低而且昏暗环境下噪点明显。要让作业看起来有质感必须做离线烘焙Baked Lighting。烘焙前需要把所有不参与动态交互的物件——墙体、天花板、地板、床架——在Inspector里把Static勾选上光线才会把这些物体的阴影信息写进光照贴图。烘焙面板的参数我用这套默认值最稳Lightmapper → Progressive GPUN卡或Progressive CPUA卡Samples设2048Bounces设2Lightmap Resolution设为每单位40 texels。烘焙完成后在Scene视图左上角把渲染模式切到Baked检查一遍有没有大面积漏光和暗斑。最容易出现的坑是墙角漏光两块墙体Cube的贴合面在贴图上产生了黑色裂缝。原因是两块独立物体在光照贴图UV的边界处采样不连续解决办法是把所有墙体合并成单个Mesh——把墙体子物体选中后在Mesh菜单里选择Convert To Mesh再做一次UV展开。这一步大概为整个场景烘焙省掉一半的返工时间。4.4 后处理让画面更像“真实拍摄”URP的Volume系统自带后处理全套滤镜我作业里用了四挡Bloom强度0.3让窗户光线和筒灯产生柔和泛光Vignette强度0.2让画面四周轻微暗角模拟真实视觉的聚焦感Color Adjustments饱和度和对比度各加10提升画面通透度Tonemapping选ACES这是最接近真实胶片色彩映射的选项。后处理Volume的权重在初始场景里设成全局后期如果导出时有性能问题可以把Bloom强度降一半或者直接关掉。这个阶段不要追求“电影感”作业评审看重的是清晰度和真实度过度后处理反而会让画面发糊。5. 交互与仿真脚本门、灯、抽屉和基础物理反馈5.1 可开关的门铰链旋转与角度钳制建模阶段的门只是一个静态的Cube让它变成能推开的门是整个场景里第一个真正的交互仿真。最直接的做法是给门挂一个脚本在鼠标点击时沿Y轴旋转。但直接改localRotation会让门在动画过程中丢失阻力感而且很难控制开关速度。我用的方案是给门加Hinge Joint组件连接点设在门轴位置然后用脚本给门施加角速度。Hinge Joint的Axis设为Y轴Limits里勾选Use LimitsMin设0度Max设110度——110度是寝室门全开的常见角度再大就会撞到墙面。using UnityEngine; public class DoorController : MonoBehaviour { [Header(门轴连接点)] public Transform doorPivot; // 空物体放在门轴位置 [Header(开关力)] public float openForce 2.0f; // 推开时的角加速度 public float maxAngle 110f; // 最大开门角度 private HingeJoint hinge; private Rigidbody rb; void Start() { // 把门挂在门轴下这样旋转中心就是门轴而不是门的中心 transform.SetParent(doorPivot); transform.localPosition Vector3.zero; rb gameObject.AddComponentRigidbody(); rb.mass 5f; // 和真实木门重量差不多 rb.interpolation RigidbodyInterpolation.Interpolate; hinge gameObject.AddComponentHingeJoint(); hinge.axis Vector3.up; hinge.limits new JointLimits { min 0, max maxAngle, bounciness 0 }; hinge.useLimits true; } public void OpenDoor() { // 在角速度上施加一个瞬间的冲量 rb.angularVelocity Vector3.up * openForce * Time.deltaTime * 50f; } }这段代码里最关键的是transform.SetParent(doorPivot)——把门变成门轴空物体的子物体这样所有旋转都发生在门轴坐标系里门的localPosition永远是零不需要额外做三角函数换算。rb.mass 5f让门推起来有钝感不会一碰就飞。angularVelocity的增量乘以50是因为Hinge Joint自带的阻力会吃掉大部分角速度系数小了门纹丝不动。5.2 灯光开关从点灯到亮度渐变的仿真灯光仿真比门的逻辑简单但容易忽略“渐变”这个细节。真实灯管不是瞬间亮到100%的而是有大约0.2秒的渐亮过程。我写脚本时用Light.intensity配合DOTween或者直接用Coroutine做插值。开关逻辑用EventTrigger或者简单的OnMouseDown就行但要注意Unity的OnMouseDown要求物体带Collider而且要挂在灯或开关面板本体上。实际作业里更合理的是挂一个开关面板点击面板控制头顶的灯这时需要把灯对象暴露成public引用或者用GameObject.Find(CeilingLight)在Start里取引用——后者更快更稳不依赖Inspector手动拖。using System.Collections; using UnityEngine; public class LightSwitch : MonoBehaviour { public Light targetLight; // 要控制的灯 private bool isOn false; private float targetIntensity 1.2f; void Start() { targetLight.intensity 0f; } void Update() { if (Input.GetKeyDown(KeyCode.F)) { isOn !isOn; StartCoroutine(FadeLight(isOn ? targetIntensity : 0f, 0.3f)); } } IEnumerator FadeLight(float endValue, float duration) { float startValue targetLight.intensity; float t 0f; while (t 1f) { t Time.deltaTime / duration; targetLight.intensity Mathf.SmoothStep(startValue, endValue, t); yield return null; } } }5.3 抽屉与柜门滑轨仿真的关键参数抽屉和柜门是第二个常见的交互验收点。抽屉不能用Hinge Joint因为它是直线滑动。我的做法是使用ConfigurableJoint把X Drive的Position Spring设成200Position Damper设成10然后在脚本里控制targetPosition来模拟开合。抽屉的阻尼设得太小会出现来回弹跳的“果冻效应”设太大则推起来像泡在水里150300的弹力配1020的阻尼是手感比较自然的区间。5.4 人物与物理试探第一人称控制器如果作业要求“人在场景里走”我建议直接用Unity自带的Character Controller组件不要自己写Rigidbody移动。Character Controller自带斜坡判定和碰撞响应不会因为床沿的Box Collider而卡住或者弹飞。挂一个简单的第一人称脚本用Input.GetAxis(Horizontal)和Vertical驱动方向跳跃键只做简单重力处理。移动速度我设2.5m/s这是寝室里正常步行的速度。加速度如果是瞬发的转头时会感觉画面“飘”我习惯用Mathf.SmoothDamp将速度做低通滤波转身和起步都会自然很多。6. 常见问题排查与避坑那些让作业翻车的隐藏地雷6.1 Unity个人版水印与开场Logo现象Scene视图一切正常但点击Play后Game视图右下角动态出现循环播放的“Unity Personal”水印导出exe后依然存在录制视频时也甩不掉。原因Unity Personal版免费许可证在非开发模式下运行时自动叠加品牌水印这是正版授权机制的一部分不是显卡驱动问题也不是场景里的UI界面。解决作业答辩或演示视频阶段用下面两种合规方式之一处理。第一在导出前将Project Settings里的Player → Resolution and Presentation → Splash Screen里把Show Splash Screen关闭同时将Static Splash Image换成自己制作的课程信息图第二录制视频时不录Game视图直接录Scene视图的Animated模式或者用Unity Recorder包录制不带水印的最终画面。不要用破解补丁改可执行文件一旦查重或答辩现场演示时崩溃损失远大于收益。6.2 导入的FBX模型在场景里发紫现象从Blender导出的椅子/行李箱拖进场景后材质球变成亮紫色或者表面全黑没有光影。原因紫色是Unity找不到对应Shader的默认占位色常见于FBX里带的是Blender的Principled BSDF材质而Unity的Standard或URP Lit无法直接解析。全黑则是法线数据丢失或者贴图路径断了。解决在Project窗口选中FBX在Inspector的Material选项卡里把Location设成Use External Materials (Legacy)然后点Extract Materials…把材质提取到Materials文件夹。提取后手动把每个材质球的Shader从Standard切换到Universal Render Pipeline/Lit。法线全黑时检查导入设置里的Normals → Calculate不要选Import让Unity重新按光滑度计算一遍法线。6.3 光照烘焙后墙角出现黑色裂缝现象烘焙完成后两面墙的接缝处出现一条贯穿画面的黑色虚线灯越亮越明显。原因两块独立Mesh在光照贴图里有UV接线采样时相邻texel颜色不一致产生暗缝。解决最省事的方法是把这些独立Mesh合并。选中要合并的所有墙体菜单栏GameObject → Convert To Mesh或在Mesh组件上点Merge按钮然后重新生成光照贴图UV。如果合并后UV拉伸严重可以在光照面板里把Lightmap Resolution从40降到30让每个texel覆盖更大空间有效减少接缝。6.4 场景运行时地面“抖动”现象摄像机在平地上走地面和墙壁出现类似摩尔纹的轻微闪烁转头时尤其明显。原因两个原因叠加导致——一是摄像机的Far Clip Plane离得太远远处平面和近处平面在做深度插值时精度不足二是地面的纹理Tiling过大导致高频细节在缩小视图下混叠。解决把摄像机的Clipping Planes → Far从默认的1000改到100足够覆盖整个寝室场景同时把Near从0.3改到0.1提升近处深度精度。地面材质的Tiling从2×1改成1×1不要在材质球里用超高频纹理。如果还抖开启URP的MSAA 4x绝大多数抖动都会被抗锯齿吃掉。6.5 帧率骤降但模型面数并不高现象场景里所有物件都是Cube或低模FBX总面数不过10万但Game视图卡到10帧以下。原因几乎可以断定是给所有物件开了实时阴影。Unity的实时阴影是按屏幕空间范围计算的每个开着阴影的光源都会渲染一遍场景深度。灯一多Draw Call成倍增长。解决打开Window → Rendering → Lighting把除了Directional Light外的所有光源的Shadow Type改成No Shadows。Directional Light的阴影只保留一张阴影贴图Shadow Resolution从High降到Medium就能保证60帧以上。如果还想再快把Shadows → Cascades从Four Cascades改成Two Cascades视觉差别在寝室这种近距离场景内几乎看不出来。7. 进阶验证技巧如何让作业“一眼过”的演示设计作业做完不是终点怎么展示才是真正的加分项。我总结了一套数字现实建模作业的验证流程按顺序走一遍基本能覆盖所有评分点。先把摄像机漫游脚本挂到一个空物体上做成一个演示轨迹从进门开始先慢镜头扫过寝室全貌然后靠近书桌停下——这时点击桌面上的台灯按钮灯亮然后镜头转向床梯推动床梯旁的椅子滑出一段距离最后绕到窗户边视角推向窗外远景把窗帘用Animator做一个拉开动画。这个轨迹恰好覆盖了结构仿真、交互仿真和光照仿真三类核心能力。我写摄像机轨迹时用了最简单的Vector3.Lerp串联点位的方案每两个点位之间加一个WaitForSeconds暂停方便答辩时讲解。每一步轨迹的持续时间按下秒表调全貌扫视8秒、灯亮后停顿3秒、椅子滑动3秒、窗帘拉开5秒——总时长控制在30秒以内这是评审耐心比较集中的窗口。using System.Collections; using UnityEngine; public class DemoCameraPath : MonoBehaviour { public Transform[] wayPoints; // 轨迹点 public float lerpSpeed 0.8f; // 转场速度 public bool loop false; IEnumerator Start() { if (wayPoints.Length 2) yield break; while (loop) { yield return MoveAlongPath(); } yield return MoveAlongPath(); } IEnumerator MoveAlongPath() { for (int i 0; i wayPoints.Length - 1; i) { Vector3 startPos transform.position; Quaternion startRot transform.rotation; float t 0f; while (t 1f) { t Time.deltaTime * lerpSpeed; t Mathf.Clamp01(t); // 位置线性插值旋转用球形插值保证不偏轴 transform.position Vector3.Lerp(startPos, wayPoints[i 1].position, t); transform.rotation Quaternion.Slerp(startRot, wayPoints[i 1].rotation, t); yield return null; } } } }这段脚本的Quaternion.Slerp比Quaternion.Lerp稳定旋转时不会在中途出现轴向漂移。我把每个轨迹点都做成Transform空物体在Scene视图里摆好位置和朝向这样以后反复录屏都不用改代码。作业录屏时打开Window → General → Recorder选择Movie模式H.264编码1920×108030fps画面饱和度会略微提升和直接用Game视图录制相比观感干净很多。最后再提三条演示习惯演示前先把场景烘焙一次不要在课上用实时阴影跑录制完检查音频——很多同学忘了场景里没有脚步声和开关门声我在门上挂了一个AudioSource播放一段木门合页的吱呀声仿真感会明显上一个台阶答辩开头先一句话报出“真实尺寸依据卷尺测量比例误差控制在2%以内”这句话基本能让评审对你的建模认真程度产生第一信任。每次做这类数字现实建模作业我都会先把评审的验收清单列出来再动手这套流程帮我在吉大交出的几个版本作业里都没翻过车希望帮到你少走这些弯路。本文还有配套的精品资源点击获取