《虚拟仿真实验脚本与策划》课件-项目3:场景架构与搭建_第1页
《虚拟仿真实验脚本与策划》课件-项目3:场景架构与搭建_第2页
《虚拟仿真实验脚本与策划》课件-项目3:场景架构与搭建_第3页
《虚拟仿真实验脚本与策划》课件-项目3:场景架构与搭建_第4页
《虚拟仿真实验脚本与策划》课件-项目3:场景架构与搭建_第5页
已阅读5页,还剩222页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

矿井灾害应急救援(火灾)虚拟仿真实验Pico模拟器的使用目录01模拟器的使用煤矿火灾基础认知02工作任务验收检查本节内容的掌握程度Part1模拟器的使用01模拟器的使用PackageManager■

包管理器:是管理引擎模块、官方工具、第三方SDK、资源插件,统一管理项目所有依赖包、自动处理版本与依赖冲突的工具。01模拟器的使用添加模拟器工具■

打开包管理器:Window-PackageManager■

可以一键安装/更新/卸载官方组件,可以自动解决依赖冲突,可以从多种来源安装包01模拟器的使用确认XRI已经安装■

模拟器是XRI中的一个demo,页签注意选择成unityregister。选中之后下拉。在下面需要找到模拟器所要使用到的包xriinteractiontoolkit。版本是2.4.1。01模拟器的使用导入XRSimulator■

在导入XRI后,需要手动下载XRDeviceSimulator资源,下载后点击Import进行导入。(这里需确认StarterAssets是否已经导入,若显示为Reimport则是已导入的状态)01模拟器的使用打开DemoScene1■

打开StarterAssets中的场景:DemoScene,首先将场景备份(按下Ctrl+D,避免直接修改场景)打开复制后的场景DemoScene101模拟器的使用使用XRDeviceSimulator■

Project中找到Simulator预制体,拖拽到场景中01模拟器的使用项目设置■

打开Editor-ProjectSettings,对开发环境进行设置01模拟器的使用XRPlug-inManagment■

切换到PC页签,勾选OpenXR(这里的LivePreview指的是使用PDC进行串流的方式,需要勾选)01模拟器的使用操作方式■

平移头部:WASD键分别代表向前左后右进行平移01模拟器的使用操作方式■

左侧Shift和空格键分别可以映射控制左右手柄。若左Shift+WASD键可以前左后右平移人物。01模拟器的使用操作方式■

左侧Shift+鼠标左键,可以使用左手柄扳机键。左侧Shift+移动鼠标可以转动左手射线。右侧手柄同理。01模拟器的使用操作方式■

抓握物体:首先利用Shift+鼠标,将射线移动到物体上。按下Shift+G键,可抓握物体,左右手操作相同。01模拟器的使用操作方式■

UI交互:使用Shift+鼠标,将射线移动到将要交互的UI上,按下Shift+鼠标左键,模拟扳机键,点击UI。左右手操作相同。Part2工作任务验收02工作任务验收模拟器使用1■检查是否完成插件和对应场景的导入。Simulator前置条件是导入XRInteractionToolkit,导入该插件后再导入对应的demo文件即可使用模拟器使用2■检查是否能够熟练使用Simulator完成场景交互。直接将预制体Simulator拖拽到Hierarchy窗口中即可使用。感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验架构设计目录01工作准备搭建开发环境02工作任务验收检查本节内容的掌握程度Part1工作准备01工作准备新建项目工程■确认Editor的版本和对应版本下的AndroidModule01工作准备新建项目工程■点击NewProject创建新项目01工作准备新建项目工程■确认Editor版本和模板01工作准备新建项目工程■修改项目路径,不能出现中文01工作准备新建项目工程■等待新建项目完成01工作准备新建项目工程■新建完成展示空界面01工作准备PicoSDK导入■打开包管理器01工作准备PicoSDK导入■从本地资源中添加包,选择AddPackageFromDisk01工作准备PicoSDK导入■找到对应资源,选中json文件点击开始导入01工作准备PicoSDK导入■导入完成后重启编辑器01工作准备PicoSDK导入■重启后勾选配置,点击应用01工作准备■找到本地文件中的Pico串流功能的UnityLivePreviewPluginSDK,以同样的方式导入导入LivePreviewPlugin01工作准备■打开PackageManager导入

XRInteractionToolkit01工作准备■切换页签找到Regisity,找到XRI导入

XRInteractionToolkit01工作准备■点击Install下载所需的包导入

XRInteractionToolkit01工作准备■导入该Package下的StarterAssets和XRHands导入

XRInteractionToolkit01工作准备■找到ProjectSettings进行设置串流设置01工作准备■找到XRPluginManagment串流设置01工作准备■勾选LivePreview选项串流设置01工作准备■点击项目设置中ProjectValidation的FixAll串流设置01工作准备■打开BuildSettings打包设置01工作准备■查看当前开发平台为Android■确认好之前所有步骤中设置项即可打包设置Part2工作任务验收02工作任务验收架构设计1■检查是否完成所有SDK导入,检查是否根据Pico平台开发规范完成所有ProjectSettings设置切换开发平台到Android,确保所有设置都已完成,FixAll确保没有警告和错误提示。架构设计2■检查是否将XRISDK中的Samples导入完成,是否了解VR项目中的设置。导入StarterAssetsSDK,后续会利用其中的DemoScene进行交互制作感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验场景资源导入-1目录01资源导入常用资源格式02工作任务验收检查本节内容的掌握程度Part1资源导入Unity支持的资源格式是多种多样的,不同的资源类型、使用平台等,适配的资源格式都是不一样的。模型资源支持主流三维模型格式,支持带动画的模型,模型资源可以用于人物、设备等图片资源可以用在项目中的UI、图文资料展示、环境搭建等支持主流音频格式,可以用于环境氛围搭建、BGM、音效等Unity支持主流音频格式,但是不同硬件平台适配的格式是不同的程序库文件、SDK文件、特效文件等图片资源音频资源视频资源其他资源01资源导入Unity中可以使用哪些格式的资源01资源导入模型资源■支持的主流三维模型格式Fbx最推荐、最通用,支持网格、材质、动画、骨骼Obj简单模型、无动画■用途:矿井巷道、支架、管道、矿工、消防员、避难室设备等工程中用到的模型以及文件中的模型格式01资源导入图片资源■.png优点是带透明通道■用途:UI、特效首选,项目中UI部分的图片资源全部使用了.png格式的图片工程中用到的UI图片以及UI面板效果01资源导入图片资源■.jpg/.jpeg/bmp等格式,场景纹理,但是无透明通道■用途:巷道墙面,岩石,金属,UI面板等墙壁、岩石、效果图等01资源导入音频资源■.wav无损,短音效推荐■.mp3通用,体积小,背景音乐■.ogg跨平台好■用途:火灾声,矿工对话,报警,旁白,生命探测,敲帮问顶音效等。本项目中的人物对话大量使用了wav格式的音频。人物对话、旁白等音效01资源导入视频资源■.mp4-最通用,Pico项目选择该格式■.ogv-不能直接用在pico上,需要转换格式■用途:案例复盘、知识点讲解等视频播放的位置火灾案例视频01资源导入字体资源■.otf字体格式文件■用途:首页的字体,otf可以直接用在Text文件上,TMP则不能直接使用,需要准备常用字体集合。首页的字体01资源导入着色器资源■.Shader着色器资源■用途:控UV偏移,计算得出其他视觉效果控制传送带和画面表现的着色器文件01资源导入特定格式资源■.unitypackage编辑器打包的资源■用途:是特殊的资源格式,可以打包完整的场景、预制体等unity专属资源。同时保留meta文件,保持对象的引用。控制传送带和画面表现的着色器文件01资源导入dll格式文件■.dll文件是完全由C#编写的.Net托管程序集■用途:分发方式灵活,在跨操作系统、Unity项目中广泛应用。控制传送带和画面表现的着色器文件Part2工作任务验收02工作任务验收工作内容1■检查是否明确Unity项目中适配的各类型资源格式,以及各类资源的常用格式。各类资源的格式非常多,但是Unity中只使用其中的一两种。工作内容2■检查是否了解本项目中各类资源的应用模块以及应用方式。能够鉴别同类型资源在不同格式下的应用区别,如mp3和wav格式在使用上的区别。感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验场景资源导入-2目录01资源导入导入方式02变换工具介绍Transform组件03工作任务验收检查本节内容的掌握程度Part1资源导入导入的方式是多种多样的,主要有以下几种:Assets使用顶部菜单栏的方式进行导入导入插件,AssetsStore中的资源等使用GUI直接导入更直观运行时通过代码动态加载PM直接拖拽动态加载01资源导入可以使用哪些方式导入资源01资源导入Asset菜单栏导入资源■点击Asset■点击ImportPackage■点击CustomPackage■用途:创建、导入、导出包均在此菜单栏下进行操作Asset菜单栏内容01资源导入Asset菜单栏导入资源■打开本地资源文件夹■选中需要导入的资源,等待一段时间后完成导入■ImportPackage的方式仅限格式为unitypackage的资源选中资产后点击打开即可开始导入01资源导入包管理器导入资源■点击Window■点击PackageManager■点击页签Addpackagefromdisk■选中资源中的json文件后自动导入■等待一段时间后即可完成资源导入。包管理器也可以使用url或者name的方式导入资源。在导入插件的时候也常常使用该方式进行导入。包管理器导入资产的界面01资源导入直接拖拽导入资源■选中本地资源■长按拖拽到Unity的Project中■松开左键显示导入文件的结构■优点:该方式下导入资源更加直观,支持直接导入的资源种类更加丰富。导入资源的过程01资源导入直接拖拽导入资源■点击All选中全部需要导入的资源■等待导入完成所需的时间■优点:重复导入资源时,在资源目录面板上会显示重复导入的字样,避免出现资源重复。导入资源的过程01资源导入音频动态加载■由于后续音频的使用是动态加载的,所以音频资源需要放在指定的文件夹下■音频资源需存放在Assets-Resources-Audio文件夹下,音频文件的调用需要通过名称搜索,所以不能修改音频文件的名称。音频资源存放的位置Part2变换工具02变换工具Transform■存储物体在3D/2D空间的位置、旋转、缩放,同时管理父子层级关系,是场景空间与层级管理的基础。■本项目中各类设备、人物的调整均需要使用该工具,必须熟练掌握从上到下依次是位移工具和旋转工具Part3工作任务验收03工作任务验收工作内容1■检查是否能够根据资源导入的三种方式完成所有资源的导入。具体使用哪种方式导入需要根据资源类型进行导入。工作内容2■能够熟练使用变换工具调整场景中物体的位置。认识变换工具的快捷键和具体功能,能够在后续制作的过程中熟练进行调整。感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验矿井环境搭建-1目录01XRI示例案例分析02工作任务验收检查本节内容的掌握程度Part1XRI示例01XRI示例DemoScene场景分析■搜索场景名称■展开TeleportationEnvironmentDemoScene场景概览,包括物体交互、眼神追踪、UI交互、人物移动等01XRI示例DemoScene场景分析■TeleportArea及其TeleportationArea组件■TeleportAnchor及其TeleportationAnchor组件■Non-TeleportableGround(无Teleport相关脚本)Teleport相关的三个组件都是和人物移动相关的01XRI示例DemoScene场景分析■TeleportAnchor■Anchor在使用时需要Collider来触发,当手柄射线进入到碰撞体后可以吸附射线到Anchor上。所以Collider体积和范围需要注意合理设置。TeleportAnchor人物传送锚点相关的功能01XRI示例XRI脚本在场景中的应用■XROrigin与XRInteractionSetup■XRInteractionSetup不是单个组件,是XRInteractionToolkit(XRI)官方提供的整套VR/AR交互初始化配置流程+预制体+配套组件火灾场景中的XROrigin01XRI示例什么是预制体■Prefab=预先制作好的物体模板,是Unity独有的资源类型,存放在Project窗口文件夹里,文件后缀.prefab■预制体≈预制菜Unity中的预制体类似于生活中的预制菜01XRI示例预制体的制作■XROrigin与XRInteractionSetup■预先制作好的游戏物体模板,是Unity独有的资源类型预制体可以大量应用到项目的制作过程中去01XRI示例预制体的优势■批量统一管理,改一处全部生效■代码动态生成物体■资源复用,减少冗余预制体的使用示例依次为:子弹、人物、道具、建筑Part2工作任务验收03工作任务验收工作内容1■检查场景中是否完成VR移动、传送、等功能的制作。是否完成功能对象上脚本添加。XRI中

控制人物移动的核心物体是XRInteracitonSetup。工作内容2■是否能将场景中静态的资源设置为合理的预制体,是否熟练掌握预制体的制作和修改。合理设置和使用预制体可以大量减少工作量。感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验矿井环境搭建-2目录01巷道和墙壁制作可交互的井下环境02工作任务验收检查本节内容的掌握程度Part1巷道和墙壁的制作01巷道和墙壁制作矿道平面制作■定位矿道平面的位置,找到Plane(1)■调整Plane(1)的Inspector属性■调整该平面的厚度和高度,避免人物出现悬空和突然坠落的情况,保障人物正常移动的最后一张网。火灾场景中的矿道平面01巷道和墙壁制作使用Transform对当前物体进行修改■选中物体■使用快捷键进行调整■将当前地面面积调整到合适的大小■添加墙壁碰撞■墙壁添加碰撞的原因是为了避免人物越界,重新设置地板的原因是为了添加巷道内人物传送。矿道平面调整01巷道和墙壁制作调整墙壁厚度■使用TransformTool调整位置■调整厚度和墙壁之间的相对位置■将每条巷道独立制作成可交互的地板,将外侧和墙壁缝隙等位置添加范围限制的碰撞体。矿道墙壁调整01巷道和墙壁制作调整双层地板■查看、调整Plane(13)的区域■查看可交互地板和限制出界两种地板的摆放和重叠情况■通过双层地板的形式,可以避免传送到巷道外等其他位置,限制出界可以避免人物穿过巷道掉落到巷道外。未添加交互的地面制作,避免人物穿过漏洞掉出场景01巷道和墙壁制作添加小地图显示■移动镜头到俯视角■定位到小地图颜色下的Canvas■小地图的实现形式是准备小地图摄像机,单独渲染这个层级的物体,所以需要准备额外的Canvas。俯视角下的场景环境和小地图摄像机渲染的Canvas01巷道和墙壁制作添加小地图显示■新建小地图摄影机■修改巷道顶部灰色长条的物体层级■该摄像机需要设置为只渲染到当前深度,若选择Everything,则会把所有的物体都渲染到画布上。为巷道顶部添加灰色巷道小地图内容01巷道和墙壁制作添加小地图显示■添加灰色Image,放置在巷道顶部■添加多个Image,组成巷道地图■巷道顶部的灰色长条负责在小地图上显示地图路线,红色和蓝色长条负责显示AB两条逃生路线。使用Image制作小地图路线01巷道和墙壁制作添加小地图显示■添加巷道名称■小地图添加UI元素的方式和UI制作是相同的■小地图UI的Canvas渲染模式是WorldSpace使用Text制作巷道名称显示Part2工作任务验收02工作任务验收工作内容1■检查是否完成井下移动范围限制地板制作,是否完成可交互地板制作,是否完成巷道墙壁遮挡制作。运行项目移动人物,在场景中移动查看是否存在导致人物出界的位置。工作内容2■检查是否完成小地图平面内容制作,包括巷道路线Image,巷道名称Text等。设置小地图时需留意小地图的渲染层级是否修改,避免出现其他物体。感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验光照组件目录01光源参数参数调整和应用02自发光材质材质制作与参数调整03工作任务验收检查本节内容的掌握程度Part1光源参数01光源参数平行光参数调整■在Hierarchy窗口找到Lighting→DirectionalLight■光源类型设置为Directional■平行光是井下光源的主要来源,影响整个环境的光照效果场景中的平行光物体01光源参数平行光参数调整■渲染模式设置为Realtime■在性能受限时应当尽量避免使用该渲染模式,避免性能缺口过大。光照的渲染模式调整01光源参数平行光参数调整■光照强度调整为1■阴影类型设置为NoShadows■按照上面的参数进行设置,确认场景基础照明正常■设置为NoShadows的原因同样是为了节省性能。光源的参数调整01光源参数聚光灯参数调整■打开灯光资源→巷道灯光2→SpotLight并激活■聚光灯锥形定向的发射模式,仅照亮前方特定位置■双重范围约束,同时受到Range和Angle的限制聚光灯的调整01光源参数聚光灯参数调整■类型设置为Spot■通过Range调整照射距离■光斑边缘是有渐进过渡的,保证光斑层次真实自然光源的参数调整01光源参数聚光灯参数调整■通过SpotAngle调整照射角度■按需调整颜色与强度光源的参数调整01光源参数点光源参数调整■在Hierarchy搜索PointLight■点光源是球形发散形式,向360°进行发射场景中的点光源01光源参数点光源参数调整■观察光照随距离衰减特性■设置强度、范围、颜色参数■存在固定的照射范围,可以通过设置Range实现局部照明光源的参数调整01光源参数点光源参数调整■关闭阴影和失活对象以优化性能■自然距离衰减,符合真实的物理光照规律场景中的光源设置Part2自发光材质02自发光材质自发光材质制作■在Project窗口右键→Create→Material■选中材质,开启Emission参数■自发光是材质驱动发光,不受环境影响■默认无物理光照投射状态,不产生阴影自发光材质创建步骤02自发光材质自发光材质制作■设置自发光颜色与强度■可以通过发光强度设置自发光材质的质感自发光材质参数调整Part3工作任务验收03工作任务验收工作内容1■光源激活与失活状态正确,无异常光失活多余灯光,保证项目运行流畅,无卡顿、掉帧工作内容2■检查光照强度、颜色、范围符合井下情况确保环境光照效果真实,避免破坏沉浸感,工程层级清晰,无多余对象感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验着色器代码制作目录01着色器着色器的介绍02工作任务验收检查本节内容的掌握程度Part1着色器01着色器什么是着色器■着色器代码就是告诉GPU:这个物体长什么样,什么颜色,亮不亮,透明不透明,怎么动,这一系列特点的代码■着色器渲染画面是个非常复杂的过程,可以学习UnithShader和图形学相关的知识思考:人眼看到物体后该怎样描述?01着色器发生uv偏移的材质■定位传送带材质的小球-uvSphere■本项目中使用了一个uvSphere来控制材质的uv偏移,通过控制该小球上的材质实现控制传送带的材质偏移。控制uv偏移的物体01着色器发生uv偏移的材质■找到该小球的材质球■点击该材质球■选中该材质球,查看Inspector面板■在寻找某个材质的时候可以通过快速定位使用该材质球的物体,从而定位到对应的材质球上去。材质球在文件夹中的位置01着色器发生uv偏移的材质■调整Inspector面板上的ScrollU/V■放大该小球在场景中的大小

■查看小球在调整uv时候的材质变化调整UV的时候可以看到小球表面材质发生旋转01着色器控制偏移的代码■搜索UVMoveX,定位到该着色器代码■查看该着色器的Inspector面板快速定位材质球上的着色器代码01着色器控制偏移的代码■双击在IDE中打开■Shader的编写方式和编写C#代码一样,都是在IDE中进行编辑。■可以使用一些插件,方便代码补全和关键字高亮着色器代码的内容01着色器Shader代码结构■Shader的名称为Custom/ScrollingX中的ScrollingX,其中Custom为该着色器存储的路径■而Shader名称的内容会体现在Inspector■_Color、MainTex等变量也会体现在Inspector上,提供给开发者进行修改定义着色器显示的名称01着色器如何在材质上使用着色器■新建材质球■新建Shader■将Shader拖拽到Material上■着色器本质上是可以高度自定义的材质球,之后打开Shader即可使用着色器如何实现自定义材质球01着色器UVMoveX代码内容■属性模块Properties■Properties是写在Shader最外层、SubShader上方的材质面板参数定义区属性代码块(Properties)01着色器UVMoveX代码内容■子着色器SubShader■SubShader是一套完整渲染方案,包含渲染标签、渲染队列、多个Pass、LOD、裁剪、混合、深度等整套渲染配置子着色器(SubShader)01着色器UVMoveX代码内容■Vertex和Fragment函数■着色器核心模块分为顶点函数和片元函数,vert管形状、几何、顶点数据转发,frag管颜色、贴图、像素最终长什么样着色器中的核心函数Part2工作任务验收02工作任务验收工作内容1■检查能否熟练新建材质球使用Shdaer实现自定义效果自定义的Shader会用在很多场景下,如:人物风格个性化、水面、星空等,都可以使用Shader实现工作内容2■检查是否正常控制传送带uv的停止和播放uv偏移相关代码结合Set函数可以将传送带的视觉效果控制为:停止/移动感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验资产整合-1目录01资产整合原则整合原则和特殊文件夹02工作任务验收检查本节内容的掌握程度Part1资产整合原则01项目文件整理01知识目标深入理解Unity项目资产整合的核心原则,掌握标准目录结构设计与规范化的资源命名规则,夯实理论基础。02能力目标具备独立规划、设计并落地实施规范项目资源管理方案的能力,能够高效完成复杂项目的资产梳理与整合。03素质目标培养严谨的开发习惯与工程化思维,有效提升团队协作效率,从根源上保障项目的可维护性与交付质量。直击开发痛点针对项目开发中普遍存在的资源存放混乱、检索困难、版本冲突等协作低效问题,精准剖析成因,提供可落地的解决方案,彻底告别无序开发的困境。构建标准化资产体系沉淀并输出一套通用的“Unity资产整合”标准方法论,涵盖目录规范、命名公约与工作流,适配从独立游戏到大型商业项目的各类开发场景。01项目文件整理01核心定义对项目所需的模型、贴图、脚本、音效、UI等数字资源,进行系统化的组织、分类、存储与标准化管理,是资源进入开发工作流的基础环节。02管理本质并非简单的文件归集,而是构建一套逻辑清晰、结构合理、易于维护的资源管理体系,让团队成员能快速理解、查找和复用项目资产。03最终目的将无序资源变得有序可控,实现“物有其位,物在其位”,从而提升开发效率、降低沟通成本,保障项目的扩展性与可维护性。💡关键洞察:资产整合是Unity项目开发的“地基工程”,前期规范的管理体系能有效规避后期因资源混乱导致的效率损耗与版本冲突。01项目文件整理01提升协作效率统一规范让团队快速理解项目结构,精准定位资源,消除沟通壁垒,大幅提升协同开发的响应速度。02便于后期维护清晰的目录结构使资源查找、修改和清理变得简单直观,降低了项目迭代和维护的复杂度与成本。03优化项目性能规范的资源管理有效减少冗余文件,显著减小打包体积,提升资源加载速度,保障应用流畅运行。04避免技术错误标准化的命名与路径规则,能有效规避因大小写、乱码或路径错误导致的打包失败及运行异常。05降低新人成本统一的资产体系如同项目的“地图”,帮助新成员快速掌握项目逻辑,缩短从入职到独立开发的周期。核心价值资产整合不仅是开发规范,更是保障项目长期稳定迭代、提升团队效能的关键基石,为高质量交付保驾护航。01项目文件整理01按业务功能分类摒弃按文件格式归类的传统方式,依据业务场景、功能模块或产品主线来组织资产,让资源结构与业务逻辑保持一致。02全英文命名规范严格禁用中文、空格及特殊符号,统一使用纯英文命名,消除不同操作系统和开发环境的兼容性障碍。03目录层级标准化将目录层级严格控制在3级以内,平衡结构清晰度与查找效率,避免因层级过深导致的资源定位困难。04资源分离与隔离实现代码文件与静态资源的物理分离,同时将正式环境资源与测试资源独立隔离,确保环境纯净与安全。05统一命名格式采用固定前缀或约定俗成的命名结构来区分资源类型、用途及版本,实现“见名知意”,降低沟通成本。01按业务功能分类核心思想:打破按“贴图/脚本/模型”的物理属性分类,转而将同一场景、同一业务模块的所有关联资源(模型、材质、逻辑脚本、UI配置)集中收纳,形成独立的业务资源单元,实现“一处修改,全局可控”的管理闭环。反例·按资源类型粗暴归集❌所有场景的贴图混杂在根目录Textures/下,难以溯源;

❌全局逻辑脚本统一扔进Scripts/,业务关联彻底割裂;

❌跨场景资源散落各处,排查一个Bug需反复翻找多个文件夹。正例·按业务场景聚合管理✅井下场景专属:Assets/Mine/聚合模型、脚本与材质;

✅业务逻辑与资源文件同目录,即查即用,开发链路闭环;

✅新功能可快速独立拆包,多人协作时资源边界清晰,互不干扰。01英文命名规范✅核心规则:标准化命名所有文件夹、文件、变量及脚本名称,必须严格使用英文、数字和下划线(_)组合,确保命名简洁、结构清晰且语义明确。❌严禁行为:高危字符严禁使用中文、空格,以及!@#$%^&*()等特殊符号。这类字符是引发系统兼容性问题的高频诱因,必须严格规避。避免打包构建异常部分前端打包工具(如Webpack)和服务端部署平台对非ASCII字符支持有限,中文命名极易触发编译或运行时报错,导致构建流程直接中断。杜绝跨系统路径乱码在Windows、macOS、Linux多系统协作或文件传输时,中文文件名的编码格式差异会导致路径显示乱码,甚至造成文件找不到或无法打开的严重问题。规避版本管理冲突Git等版本控制系统对中文文件名的解析存在兼容性差异,容易在分支合并、拉取代码时产生不必要的冲突,增加团队协作的沟通与解决成本。01标准化目录层级核心原则:目录层级严格控制在3级以内既避免路径冗长导致的查找低效,也防止扁平堆砌造成的视觉混乱,是兼顾维护效率与结构清晰度的最优解,也是行业通用的工程化标准。❌层级过深(深度>3)文件路径冗长难记,大幅降低检索效率;增加代码中相对引用的复杂度,易引发路径错误;同时过深的目录结构会增加系统文件IO的遍历开销。❌层级过浅(扁平结构)所有资源无序堆砌在根目录,视觉上极度混乱,文件命名冲突风险极高;随着项目迭代,文件数量指数级增长,后期维护将彻底失控。✅标准化推荐范式Assets/[一级业务域]/[二级功能模块]/资源文件.xxx示例:Assets/Pay/WeChat/order_btn.png01分离与隔离01/代码与资源分离打破传统混杂模式,将核心逻辑代码(Scripts)与美术资源(Models、Textures、Audio等)在Assets根目录下并列独立存放,构建物理层面的清晰边界。核心收益:极大降低代码审查与维护成本,美术与开发可并行独立管理资源,避免互相干扰,显著提升团队协作效率。02/正式与测试资源分离设立独立的_Temp或_Test专属目录,集中收纳开发调试素材、未完工资源及临时测试文件,严禁测试资源混入正式生产目录。核心收益:确保版本库与发布包的绝对纯净,杜绝测试资源误提交、误打包上线的风险,保持项目结构的整洁可控。“合理的目录隔离不仅是工程规范,更是保障项目长期可维护性与稳定性的基础防线。”01统一命名格式核心思想:坚持“见名知意”,通过文件名直观判断资源类型、用途与归属,降低沟通成本。

实现方法:采用标准化前缀命名法,为不同类别的资源设定统一的识别标识。01模型资源(Models)固定前缀:model_示例:model_axe_iron.fbx

用于标识3D模型文件、预制体或骨架02贴图纹理(Textures)固定前缀:tex_示例:tex_ground_ao.png

适用于漫反射、法线、粗糙度等各类贴图03材质资源(Materials)固定前缀:mat_示例:mat_glass_refraction.mat

区分材质实例、着色器与参数配置文件04程序脚本(Scripts)命名规则:大驼峰式(PascalCase)示例:PlayerHealthSystem.cs、GameAudioManager.cs|强调功能模块与职责05UI界面资源(UI)固定前缀:ui_+类型描述示例:ui_icon_settings.png、ui_panel_login_bg.png|清晰区分图标、面板与背景Assets根目录标准结构采用模块化、分类清晰的目录结构,不仅能有效提升项目的可维护性,还能显著降低团队协作中的资源管理成本,是Unity引擎开发中公认的最佳实践标准。01核心资源分类Scenes/Scripts:场景与逻辑代码

Prefabs/Models:预制体与模型

Textures:贴图与纹理资源Materials:材质球配置

Audio/FX:音频与特效

UI:界面与交互资源02功能与配置目录Resources:动态加载专用

Plugins:插件与SDK

Settings:项目配置文件_Temp:临时测试资源

Docs:文档与策划案

Editor:编辑器扩展脚本核心文件夹详解01/Scenes场景管理存放项目核心的.unity场景文件,建议按业务模块(如登录、关卡、大厅)建立子目录。合理的层级划分能让场景结构清晰,便于团队协作与版本控制管理。02/Scripts脚本逻辑按功能分层规划目录(如Manager管理层、UI界面层、VR交互层),脚本名严格使用大驼峰命名法。规范的脚本结构能显著提升代码的可读性与项目的可维护性。03/Prefabs预制资源收纳项目中可复用的游戏对象(如敌人、道具、UI组件)。利用预制体的嵌套与变体功能,可大幅减少重复开发工作,有效降低资源冗余并提升迭代效率。04/Models模型资产存放外部导入的FBX/OBJ三维模型,建议按角色、场景、道具等模块分类。规范的模型管理不仅便于快速检索,也能有效避免资源冲突与路径错误。核心文件夹详解Textures纹理存放所有纹理贴图文件,建议按用途细分目录(如`tex_model`模型纹理、`tex_ui`界面纹理),确保贴图资源的有序管理与高效复用。Materials材质统一存放项目所有材质球资源,禁止将材质散落在场景或其他目录下。集中管理能有效避免重复创建,保证视觉效果的一致性。Audio音频收纳游戏或应用的各类音频资源,建议按功能细分:`bgm`(背景音乐)、`sfx`(音效)、`voice`(角色语音)等,便于后期维护。FX视觉特效集中管理粒子系统、动态光影、后处理特效等视觉增强资源。统一的目录结构能让特效资源被快速调用、迭代和优化,极大提升画面的表现力与沉浸感,是打造高品质视觉体验的关键。UI界面资源存放支撑交互体验的所有界面资源,包含UI图集、自定义字体文件、面板预设、图标素材等。合理的资源组织能保障界面开发的效率,确保用户操作的流畅性与视觉的统一性。特殊用途文件夹01/Resources⚠️慎用!仅存放需通过代码动态加载的资源。放入此文件夹的资源会被无条件打包,显著增大安装包体积,建议非必要勿用。02/Plugins用于存放扩展引擎功能的第三方库、平台SDK(如VR/AR插件、广告SDK)以及原生插件(C++DLL或Java库),是项目能力扩展的核心目录。03/Settings存储项目的全局配置文件,涵盖渲染管线(SRP)设置、输入控制映射、质量分级、标签层定义及物理材质等关键参数,是项目运行的基础规则。04/_Temp🚀必用!所有测试资源、临时文件、未完工素材的专属“隔离区”。它能保持项目结构整洁,切记在正式打包发布前必须清空此目录,避免冗余文件。命名规范01脚本命名严格遵循大驼峰命名法(PascalCase),类名与文件名保持一致,首字母大写,见名知意。正确示例:

VrGestureManager.cs

ParticleEffectCtrl.cs02资源命名采用「前缀_描述_序号」结构,全小写字母,下划线分隔,清晰标识资源类型与用途。正确示例:

tex_wall_01.png

ui_icon_setting.png03通用禁忌🚫禁止将资源直接放在Assets根目录,需分类归档。

🚫第三方资源导入后,必须按规范重新整理。

🚫废弃资源及时清理,避免工程冗余与性能损耗。规范的命名不仅是代码的素养,更是团队协作效率与项目长期可维护性的坚实基础。Part2工作任务验收02工作任务验收工作内容1■了解各类文件夹的结构和作用,了解资源加载的特殊文件夹的命名资源加载的文件夹如:Resources和StreamingAssets是通过名称来进行搜索的,所以需要注意文件夹的命名。获取脚本以及搜索对象组件是需要通过名称搜索的,需要注意脚本的命名。工作内容2■查看脚本制作的时候的命名,保证符合脚本名称的命名规范感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验资产整合-2目录01项目文件整理文件夹整理02工作任务验收检查本节内容的掌握程度Part1项目文件整理01项目文件整理脚本、模型、预制体等文件整理■新建文件夹■移动Script文件夹到Scripts下脚本文件夹的整理01项目文件整理脚本、模型、预制体等文件整理■管理Prefabs和Model文件夹■新建Folder■Rename新建后的Folder预制体和模型文件夹的整理01项目文件整理其他文件夹整理■文件结构:用资产整合-1课程中的文件夹管理相关知识,如果场景资源缺少对应的文件夹,则需要手动进行创建Assets下的文件结构01项目文件整理其他文件夹整理■Plugins管理:将BuskitFramework,BuskitPlugins移动到Plugins文件夹下BuskitFramework和BuskitPlugins是框架的Plugin文件夹01项目文件整理其他文件夹整理■视频和音频文件的管理:用的视频和音频文件保存在StreamingAssets下音频和视频文件的路径01项目文件整理删除Project下的其他文件■Assets根目录:不能放资源文件,需要将其移动到对应类型的资源文件夹下Assets的根目录下不能直接放资源文件01项目文件整理Temp文件夹■临时文件夹:新建_Temp临时文件夹,将临时脚本,测试场景等临时文件放到该文件夹下,避免打包体积过大思考:打包时的文件体积取决于什么?Part2工作任务验收02工作任务验收工作内容■检查是否按照资产整合-1中的要求,将当前导入到场景中的资产文件进行整理实际项目资产整理也需要结合公司制度、部门开发守则等资料来进行整理■检查最终是否将文件夹结构整理为最终图片上的内容最终结构需要参考上图内容感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验物体光照效果控制目录01光照效果控制参数调整02工作任务验收检查本节内容的掌握程度Part1光照效果控制01光照效果控制巷道灯光■通过名称在编辑器搜索找到巷道灯光对象,避免层级海量物体逐一翻找的低效操作,直接锁定灯光操控主体,开启后续光照效果的精细化调控工作。巷道灯光采用灯光组的方式进行设计01光照效果控制巷道灯光■全选巷道灯光批量激活,激活灯光对象以及快速校验整体光照氛围、光影细节是否达标,方便后续针对性微调参数。■

一键关闭巷道全部灯光,对照明暗两种场景效果,完成光照方案的对比测试与迭代优化。关闭巷道灯光01光照效果控制巷道灯光■搜索DirectionalLight找到平行光,快速筛选出场景中的平行光对象,它是巷道整体环境光照的核心光源,能奠定场景基础明暗基调。■调整Light参数,精细化修改光源各项属性,实现巷道整体环境光照效果的优化。平行光是环境灯光的基础01光照效果控制巷道灯光■调整灯光组件的Intensity参数,精准调控巷道灯光的发光亮度,可以完成光照明暗效果的精细化调校。脚本文件夹的整理01光照效果控制巷道灯光■调整Color,可以通过设置Realtime的RenderMode来实时显示光照颜色。修改平行光颜色预览井下效果01光照效果控制光照调整面板代码■定义关联对象的变量名,可用于后续光照面板的交互控制。属性值可以修改为public在inspector上进行调试和关联01光照效果控制光照调整面板代码■光源遍历搜索DirectionalLight用

FindObjectsOfType<Light>()

获取场景所有灯光,再通过循环逐个判断灯光类型,找到Directional平行光后保存引用,后续就能控制该主光源。灯光对象遍历的过程01光照效果控制光照调整面板代码■通过名称获取场景中的对象,借助

transform.Find("控件名称")

依据物体层级名字找到面板上的滑块、按钮、开关,再用

GetComponent

拿到对应组件,完成脚本和UI控件的绑定。通过名称搜索进行绑定01光照效果控制添加UI监听■Button的onClick监听图中第36行:给「重置光照Btn」绑定

ResetColor

方法,点击按钮就会执行该方法,把光照的颜色、强度恢复成初始默认值。图中第37行:lambda匿名回调绑定点击事件,点击关闭按钮时,直接把当前光照控制面板隐藏,实现关闭面板的效果。按钮事件监听01光照效果控制添加UI监听■Slider的onValueChanged监听,是专门监听滑块数值发生改变的事件,只要拖动滑块、数值产生变化,就会立刻触发绑定的回调函数,适合做实时参数调节。Slider的值调整事件的监听01光照效果控制添加UI监听■ChangeColorSlider方法用来监听颜色滑块拖动事件,

低值时灯光固定白光兜底,

基于HSV实现灯光色彩平滑渐变。拖拽灯光滑动条的事件Part2工作任务验收02工作任务验收工作内容■检查是否关闭场景中多余的光源,只保留一个平行光光源数量过多会导致画面帧数过低、运行卡顿代码中的监听是UI交互的基础工作内容■检查代码中组件的名称是否与面板上的名称统一,检查代码监听内容是否编写正确。检查监听是否添加绑定感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验特效交互目录01Unity特效体系特效系统介绍02工作任务验收检查本节内容的掌握程度Part1Unity特效体系01Unity特效体系内置粒子系统ParticleSystem■Unity最早、使用最广泛、兼容性最强的CPU端粒子特效,也是项目中使用率最高的基础特效工具■适配所有渲染管线,低端设备、移动端、VR设备都能稳定运行内置粒子系统01Unity特效体系内置粒子系统的应用■火焰、烟雾、水汽、落叶、雪花、雨滴、枪口火花、灰尘飘散、小范围爆炸碎屑、技能小光效、拖尾特效等中小型常规视觉效果粒子系统应用的范围01Unity特效体系内置粒子系统原理■由CPU实时计算每一个粒子的生成位置、运动轨迹、生命周期、大小颜色变化,逐帧更新粒子状态后提交GPU渲染,计算压力集中在CPU粒子使用演示01Unity特效体系内置粒子系统参数■主模块控制粒子整体时长、初始生命周期、初始大小、初始速度、全局重力、粒子初始旋转与整体缩放粒子面板参数01Unity特效体系内置粒子系统优缺点■优点参数简单易上手、调试直观、打包体积小、全平台兼容、VR项目运行稳定■缺点单场景粒子承载数量有限,大量密集特效容易造成CPU卡顿,复杂流体物理效果难以实现打包过程的部分设置01Unity特效体系VFXGraph可视化节点特效■Unity为URP通用渲染管线、HDRP高清渲染管线推出的GPU端高性能特效系统■采用节点式可视化编辑,脱离传统参数面板操作VFX文档01Unity特效体系VFX适用场景■大范围火海、巨型爆炸、海量粒子洪流、流体流动、激光束、能量法阵、群体碎片、大范围沙尘等高密度、大场面炫酷特效爆炸示意图01Unity特效体系VFX适用场景■粒子生成、运动、受力、碰撞逻辑全部交由GPU并行计算,大幅度解放CPU性能,可同时承载数万甚至上百万数量粒子显卡中的GPUs01Unity特效体系VFX适用场景■必须项目切换至URP或HDRP渲染管线,内置渲染管线无法使用VFXGraph,低端移动端设备慎用,容易出现帧率下滑URP文档01Unity特效体系屏幕后处理特

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论