• 关于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和材质。

  • 相关阅读:
    制作类似QQ截图软件
    XML文件与实体类的互相转换
    MFC中真彩工具条的制作方法
    MFC使用技巧集锦(1)(转载)
    抽象工厂模式与工厂方法模式区别
    VC数据库编程分析
    如何让工具条显示256色图像
    华为软件编程规范和范例
    设计模式总结性试题
    VC++中基于ADO操作ACCESS数据库,FLEXGRID控件的综合应用
  • 原文地址:https://www.cnblogs.com/HangZhe/p/7358093.html
Copyright © 2020-2023  润新知