关于Unity中场景的导入与导出(专题九)
Unity场景
场景虽然是由场景美术做好的,但是我们经常需要自己去导导出以及从别的项目导入,所以我们需要对场景的导入和导出有一个详细的了解
1: 场景是由美术人员搭建完成后提交给程序;
2: 场景一般包括了地形, 创建物体, 光源, 天空盒,与雾等;
3: 场景不包含任何逻辑
4: 程序员要能熟练的导入与导出其他项目的场景;
场景导出和导入思路
把Unity4.X的场景文件导入到Unity5.X的场景中
1: 准备好Unity 4.7游戏项目的要导出的场景;
2: 将属于场景的物体,导出成预制体;
3: 将预制体导入到自己的场景;
4: 检查导入后的正确性;
5: 导入天空盒;
6: 如果有雾的话配置好雾;
7: 打开光源,烘培出静态光照;
场景导出实例
打开Unity4.X,打开项目工程,先选中一个要导出的场景,双击打开

1.导出天空盒。
观察:如果在场景编辑器里面,能看到天空盒,那么说明天空盒配置在全局的,不是在摄像机上的,要挂摄像机上可以加一个Skybox组件,所以如果天空盒不是全局的可以去摄像机的Skybox组件的属性里面找天空盒材质。
导出:Unity 4.7与Unity5.X的不同在于,它的全局天空盒设置是在Edit---->Render Settings---->Skybox Material---->点击材质关联属性,
找到当前场景的天空盒材质---->右键---->Export Package---->Export(导出天空盒的依赖资源<上面>+天空盒材质<下面>)---->到专门的一个文件夹中并重命名sky.unitypackage

2.导出Hierarchy视图下的场景有关的节点。
观察:一个一个节点进行隐藏和显示,看会不会对Scene视图的显示产生影响,有影响的就是静态的物体,是要导出的。也就是学会使用Active找到自己想要导出的某个场景中的静态节点。
导出:把场景节点拖到一个固定的目录---->生成预制体---->一起选中右键---->Export Package---->Export(导出预制体的依赖资源<上面>+刚才的预制体<下面>)---->到专门的一个文件夹中并重命名game_map.unitypackage
---->删除预制体---->还原变成预制体的节点---->Gamobject---->Break Prefab Instance

场景导入实例
打开Unity5.X,创建项目工程
1.导入刚才导出的专门的一个文件夹里面的package资源包,sky.unitypackage和game_map.unitypackage,保存场景
2.配置天空盒。
寻找:找到天空盒的材质,找不到可以在上面的搜索栏搜索Sky
导入:Windows---->Lighting---->Scene---->Skybox---->把天空盒材质拖进去(有的游戏的天空盒不需要上和下的贴图,所以有的时候上下会有两个洞)
3.配置场景有关的节点。蓝色步骤可以省略。
导入:直接把刚才导入的两个预制体节点拖入Hierarchy视图下变成场景中的节点
排查:发现显示有问题,是因为版本的差异导致的,有些子节点由于命名不规范等等原因找不到对应的材质文件或者模型网格Mesh而无法显示。但是导入的资源和依赖是完整的,没有丢失的。这时候只能一个一个子节点地排查并关联网格Mesh和材质。
展开父节点---->找到其中一个子节点(这个是模型节点)---->展开这个子节点---->发现这个子节点的子节点中的某个节点网格组件Mesh Filter的Mesh属性为Missing
---->复制该模型节点的名字---->到Unity4.X里面的Hierarchy视图中搜索这个节点(搜到后选中同名节点然后再删除搜索栏的名字)
---->找到对应的模型节点,展开模型节点,发现它的子节点的Mesh有关联Mesh---->确认Unity5.X中这个模型节点的这个子节点丢失了网格Mesh
---->复制该模型节点的名字---->到右边Project搜索栏里面搜索(搜到后选中同名模型文件然后再把搜索栏名字删除才会到模型.FBX文件的目录下)---->展开对应名字的模型文件.FBX结尾的,找不到可以用文件夹浏览看后缀.FBX
---->把对应的丢失的网格资源,子.FBX资源文件,拖进丢失节点网格Mesh的节点的Mesh Filter组件的Mesh属性中---->手动关联成功---->排查下一个模型节点


4.删除无用的脚本组件
提示说找不到某个脚本,可以直接复制节点名字,到下面把对应的脚本组件删除


5.烘焙操作。
场景中的光照一般都是使用烘焙光照,不是实时的,所以
开灯:找到光源的总父节点Light,然后设置为Active显示,就是打钩节点的左上角,这时候其实设置为baked的光源会自己开始烘焙static物体
烘焙:Windows---->Lighting---->Scene---->取消auto---->Build---->完成后会生成静态光照的资源文件
6.保存预制体。
等到一切都设置好后,和Unity4.X里面的效果一样之后,可以把这两个预制体点击Apply保存,就可以直接删除再拖预制体进来了。
心得:
美术资源的命名一定要规范,千万不要用中文,不然在导入导出的时候会非常麻烦,要手动关联Mesh和材质。
关于Unity中场景的导入与导出(专题九)的更多相关文章
- C#中Excel的导入和导出的几种基本方式
在上一篇(http://www.cnblogs.com/fengchengjushi/p/3369386.html)介绍过,Excel也是数据持久化的一种实现方式.在C#中.我们常常会与Excel文件 ...
- 前端必读:如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件
JavaScript在前端领域占据着绝对的统治地位,目前更是从浏览器到服务端,移动端,嵌入式,几乎所有的所有的应用领域都可以使用它.技术圈有一句很经典的话"凡是能用JavaScript实现的 ...
- 前端必读2.0:如何在React 中使用SpreadJS导入和导出 Excel 文件
最近我们公司接到一个客户的需求,要求为正在开发的项目加个功能.项目的前端使用的是React,客户想添加具备Excel 导入/导出功能的电子表格模块. 经过几个小时的原型构建后,技术团队确认所有客户需求 ...
- Java中使用poi导入、导出Excel
一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...
- Hive中数据的导入与导出
最近在做一个小任务,将一个CDH平台中Hive的部分数据同步到另一个平台中.毕竟我也刚开始工作,在正式开始做之前,首先进行了一段时间的练习,下面的内容就是练习时写的文档中的内容.如果哪里有错误或者疏漏 ...
- MyEclipse或Eclipse中project的导入和导出
project的导入:将project放到对应的目录中--打开MyEclipse--光标定位在PackageExp位置(即project创建位置),右键选中并点击"Import-" ...
- Unity 中场景切换
Unity游戏开发中,单个Scene解决所有问题似乎不可能,那么多个Scene之间的切换是必然存在.如果仅仅是切换,似乎什么都好说,但是在场景比较大的时候不想让玩家等待加载或者说场景与场景之间想通过一 ...
- mysql数据库中的数据导入与导出
需求: 在本地电脑上的mysql中创建了一个数据库,并且在该数据库中创建了很多表,表中数据比较多: 现在想换一台电脑,但是又不想重新建数据库.建表.造数据. 解决方案: 利用mysql提供的命令,在本 ...
- Unity中场景异步加载
引入命名空间 using UnityEngine.UI; using UnityEngine.SceneManagement; using System.Collections; using Syst ...
随机推荐
- Atitit opencv3.0 3.1 3.2 新特性attilax总结
Atitit opencv3.0 3.1 3.2 新特性attilax总结 1. 3.0OpenCV 3 的改动在哪?1 1.1. 模块构成该看哪些模块?2 2. 3.1新特性 2015-12-21 ...
- [sql]mysql5.6cmake安装/mysql5.7二进制安装
centos7上cmake编译安装mysql-5.6.36.tar.gz 系统环境 - 环境(安装前规划好主机名,mysql编译过程会用) [root@n1 mysql-5.6.36]# cat /e ...
- x86-64整数寄存器
- 【小白的CFD之旅】25 二维还是三维
小白最近逛图书馆,发现最近关于Fluent的书是越来越多了,而且还发现这些关于Fluent教材中的案例都大同小异.小白接受小牛师兄的建议,找了一本结构比较鲜明的书照着上面的案例就练了起来.不过当练习的 ...
- [Windows Azure] How to Monitor Cloud Services
How to Monitor Cloud Services To use this feature and other new Windows Azure capabilities, sign up ...
- centos 7 min 编译安装php5.6+nginx1.7.5 笔记
1.安装mysql请参照 centos 7 min 编译安装mysql5.6.20 笔记 2.编译安装php5.6+nginx1.7.5 2.1.安装php5.6.0 首先添加依赖应用yum inst ...
- 李洪强iOS开发之静态库的打包一
李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...
- hive的row_number()函数
hive的row_number()函数 功能 用于分组,比方说依照uuid分组 组内可以依照某个属性排序,比方说依照uuid分组,组内按照imei排序 语法为row_number() over (pa ...
- pyspark实现自动提示以及代码高亮
pyspark实现自动提示以及代码高亮 起因 打开pyspark发现啥提示都没有,太不友好了啊,然后忍不住谷歌了一下,发现了这篇文章,内容如下: 1.pip install ptpython; 2.e ...
- YGC和FGC发生时间
1.YGC和FGC是什么 YGC :对新生代堆进行gc.频率比较高,因为大部分对象的存活寿命较短,在新生代里被回收.性能耗费较小. FGC :全堆范围的gc.默认堆空间使用到达80%(可调整)的时候会 ...