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中场景的导入与导出(专题九)的更多相关文章

  1. C#中Excel的导入和导出的几种基本方式

    在上一篇(http://www.cnblogs.com/fengchengjushi/p/3369386.html)介绍过,Excel也是数据持久化的一种实现方式.在C#中.我们常常会与Excel文件 ...

  2. 前端必读:如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件

    JavaScript在前端领域占据着绝对的统治地位,目前更是从浏览器到服务端,移动端,嵌入式,几乎所有的所有的应用领域都可以使用它.技术圈有一句很经典的话"凡是能用JavaScript实现的 ...

  3. 前端必读2.0:如何在React 中使用SpreadJS导入和导出 Excel 文件

    最近我们公司接到一个客户的需求,要求为正在开发的项目加个功能.项目的前端使用的是React,客户想添加具备Excel 导入/导出功能的电子表格模块. 经过几个小时的原型构建后,技术团队确认所有客户需求 ...

  4. Java中使用poi导入、导出Excel

    一.介绍 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际 ...

  5. Hive中数据的导入与导出

    最近在做一个小任务,将一个CDH平台中Hive的部分数据同步到另一个平台中.毕竟我也刚开始工作,在正式开始做之前,首先进行了一段时间的练习,下面的内容就是练习时写的文档中的内容.如果哪里有错误或者疏漏 ...

  6. MyEclipse或Eclipse中project的导入和导出

    project的导入:将project放到对应的目录中--打开MyEclipse--光标定位在PackageExp位置(即project创建位置),右键选中并点击"Import-" ...

  7. Unity 中场景切换

    Unity游戏开发中,单个Scene解决所有问题似乎不可能,那么多个Scene之间的切换是必然存在.如果仅仅是切换,似乎什么都好说,但是在场景比较大的时候不想让玩家等待加载或者说场景与场景之间想通过一 ...

  8. mysql数据库中的数据导入与导出

    需求: 在本地电脑上的mysql中创建了一个数据库,并且在该数据库中创建了很多表,表中数据比较多: 现在想换一台电脑,但是又不想重新建数据库.建表.造数据. 解决方案: 利用mysql提供的命令,在本 ...

  9. Unity中场景异步加载

    引入命名空间 using UnityEngine.UI; using UnityEngine.SceneManagement; using System.Collections; using Syst ...

随机推荐

  1. AdminLTE, Color Admin

    AdminLTE, Color Adminhttps://github.com/almasaeed2010/AdminLTE/http://www.seantheme.com/color-admin- ...

  2. android 自己定义视频播放器之2/1

    非常久没更新博客,相信大家年后都比較忙. 今天给大家带来了一款视频播放器,首先确认的得有几点. 1.首先得有个播放视频的view. 2.加点额外功能进去左边上下滑动调节亮度,右边上下滑动调节声量: 3 ...

  3. Android 自定义Dialog 去除阴影

    自定义Dialog中添加下列代码: window.clearFlags( WindowManager.LayoutParams.FLAG_DIM_BEHIND);

  4. Sql Server 2008 清除日志

    --在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式. USE [master] GO ALTER DATABASE SSCDZ SET RECOVERY SIMPLE ...

  5. (原创)c++11改进我们的模式之改进单例模式

    我会写关于c++11的一个系列的文章,会讲到如何使用c++11改进我们的程序,本次讲如何改进我们的模式,会讲到如何改进单例模式.观察者模式.访问者模式.工厂模式.命令模式等模式.通过c++11的改进, ...

  6. SVN文件加锁

    原文:SVN与TortoiseSVN实战:文件加锁详解 加锁与解锁的操作对于项目中的二进制文件,如图片.声音.动态库等不可合并文件是非常有用的,可以让这些文件防止产生恼人的冲突,但TortoiseSV ...

  7. 光照渲染[Unity]

    http://www.unitymanual.com/m/Manual/RenderingPaths.html http://wenku.baidu.com/view/54eca9e09b896802 ...

  8. Python实现堆数据结构

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/3/18 19:47 # @Author : baoshan # @Site ...

  9. Loadrunner集合点Rendezvous知识

    摘自: http://blog.csdn.net/richnaly/article/details/7967364 集合点的意思时等到特定的用户数后再一起执行某个操作,比如一起保存,一起提交(我们通常 ...

  10. 基于animation.css实现动画旋转特效

    分享一款基于animation.css实现动画旋转特效.这是一款基于CSS3实现的酷炫的动画旋转特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class ...