关于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 ...
随机推荐
- [svc]ssh+gg二步认证
1,安装依赖 yum install python-pip -y pip install docutils yum install gcc python-devel subversion pam pa ...
- iOS 系统消息通知
一.键盘 1.UIKeyboardWillShowNotification-将要弹出键盘 2.UIKeyboardDidShowNotification-显示键盘 3.UIKeyboardWillHi ...
- 行为类模式(八):状态(State)
定义 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以 ...
- Python args **kwargs作用
python当函数的参数不确定时,可以使用*args和**kwargs,*args用于捕获所有no keyword参数,它是一个tuple.**kwargs捕获所有keyword参数,它是一个dict ...
- Window 分布式 学习2----好文收藏
概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效 ...
- 【神经网络】BP算法解决XOR异或问题MATLAB版
第一种 %% %用神经网络解决异或问题 clear clc close ms=4;%设置4个样本 a=[0 0;0 1;1 0;1 1];%设置输入向量 y=[0,1,1,0];%设置输出向量 n=2 ...
- [datatable]排序时指定某列不可排序
datatable是一个jquery扩展的表格插件.其提供了强大的表格功能. 官方地址:http://www.datatables.net/ 在官方示例中,对于表格的是否可排序是在初始化中设置的一个值 ...
- JD 题目1040:Prime Number (筛法求素数)
OJ题目:click here~~ 题目分析:输出第k个素数 贴这么简单的题目,目的不清纯 用筛法求素数的基本思想是:把从1開始的.某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉.剩下 ...
- 多平台的网站实现单点登录系统(SSO)的开发思路 让你的会员中心更加统一(参考资料)
单点登录并不是一个新鲜的玩意儿,比较官方的解释是企业业务整合的解决方案之一,通俗来讲SSO就是一个通用的用户中心,国内比较流行的UCenter就是一套单点登录解决方案.而近期以CSDN明文存储用户密码 ...
- Cacti的库表结构-Data
cacti 的数据都是存放在rrdtool 中的,数据库存放的其实只是配置数据,cacti 的逻辑对象主要分为三种,data (数据).graph (图片).host (设备),这在它的表设计中也能很 ...