http://www.mysjtu.com/page/M0/S716/716482.html

3d游戏中 一个场景往往斗劲大 若是游戏的进行须要下载一个10M甚至更大的场景时 加载所用的时候会导致很大项目组玩家的流失

我们知道unity3d中的内置地形是应用一张高度图 对其地形进行打包今后 发明<=100KB

那么若是采取unity3d的内置地形作为游戏中的地形时 起首加载地形并显示 再去加载场景中的部件(比如树、房子等) 将会很有须要

在加载场景中的部件时 可以按照玩家当前地点的地位 由近到远的去加载

场景中的每个部件实际上并不都是独一无二的

比如一棵一模一样的树 可能同一个场景中呈如今很多处所 不合的只是树的地位信息

那么在加载场景的时辰则只须要加载一个树的模型 并记录下N个树的transform信息 将会大大的削减场景所占的空间

若是模型的重用率较高 那么这个题目的解决将会成倍的削减一个场景所占的空间

场景在加载时 也只须要下载一个树的模型 并按照transform信息 在指定的地位复制出N棵树即可

在应用unity3d的BuildPipeline进行打包之前 须要遍历一边所选文件夹下的场景文件

若是文件的MeshFilter的Mesh为在该文件夹中只呈现了一次 则申明该模型在场景中没有反复 则记录下该模型文件的transform信息 并打包

若是该Mesh呈现的次数大于一次 则记录下这些和该Mesh雷同的模型的transform信息 打包时包含一个模型和多个transform信息

在unity3d中有个名为ScriptableObject的类 可以哄骗它来存储本身所需的各类百般的资料

public class TransformHolder : ScriptableObject{    public int Length;    public Vector3[] position;    public Quaternion[] eulerAngles;    public Vector3[] localScale;}

如许一来 每一个资料包中都包含一个模型和一个TransformHolder类型的文件
TransformHolder的Length若为1 则申明该模型在场景中只呈现了一次

若大于1 则可以按照记录的transform信息轮回生成多个

本来有几百个资料包 大小有十几兆的场景

用该办法后 变成了二十多个资料包 大小削减到不足2M

当然这实用于场景中的模型有重用的现象

【Unity3d】3d网页游戏场景打包与加载相关推荐

  1. unity3d 怎么生成网页版_Unity3D 基础教程3D网页游戏场景打包与加载

    3D游戏中,一个场景往往斗劲大,若是游戏的进行须要下载一个10M甚至更大的场景时,加载所用的时候会导致很大项目组玩家的流失. 我们知道Unity3D中的内置地形是应用一张高度图,对其地形进行打包今后, ...

  2. 3D网页游戏场景打包与加载

    3D游戏中,一个场景往往斗劲大,若是游戏的进行须要下载一个10M甚至更大的场景时,加载所用的时候会导致很大项目组玩家的流失. 我们知道Unity3D中的内置地形是应用一张高度图,对其地形进行打包今后, ...

  3. Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条(三十一)

    异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Application.LoadLevel("yourSc ...

  4. Unity3D游戏开发之使用AssetBundle和Xml实现场景的动态加载

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com/. 引言 今天我想和大家聊聊在Unity3D中关于场景的动态加载的问题.众所周知在Unit ...

  5. 【Unity3D 打斗游戏开发】之二 异步加载场景或预加载资源后进入游戏

    假设当前场景为A,我们要切换到下一场景B,如果使用正常加载方式,Unity会在切换场景时加载场景B的所有内容(Hierarchy面板内容)到内存中,由于加载场景B是同步执行的,所以当场景B较大时,就会 ...

  6. 基于babylon.js的3D网页游戏从零教程

    3D 游戏的 javascript 框架: 在很久一段时间 web 端的 3D 游戏引擎一直是 nothing,但现在却如雨后春笋. Unity (Unity 2018.2 开始已经彻底弃用 js,使 ...

  7. 游戏开发者眼中的Unity 3D网页游戏测评报告

    目前,能够实现3D页游的主流技术有Silverlight.XNA.Flash.HTML5和Unity3D.其中,Unity3D作为一款专注于3D游戏的浏览器插件,近期在国内外页游产品线骚动异常:本人从 ...

  8. 异步加载场景与异步加载游戏资源

    异步加载场景与异步加载游戏资源 Application.LoadLevel 加载关卡 在同步加载游戏场景的时候通常会使用方法Application.LoadLevel 加载关卡. 该方法在执行完App ...

  9. unity 3D里有两种动态加载机制

    unity 3D里有两种动态加载机制: 一是Resources.Load: 一是通过AssetBundle: 其实两者本质上没有什么区别.Resources.Load就是从一个缺省打进程序包里的Ass ...

最新文章

  1. 笔记 | PyTorch张量Tensor的一些必备操作
  2. linux top 报错 TERM environment variable not set.
  3. Linux内核线程kernel thread详解--Linux进程的管理与调度
  4. Android学习路线总结
  5. ELK下钉钉邮件告警通知
  6. 阿里开源自研语音识别模型DFSMN 准确率高达96.04%
  7. php qr生成二维码
  8. 多线程和并发管理 .NET多线程服务
  9. TrueCrypt编译记录
  10. 十大Java编程工具
  11. ros机器人编程实践(12.2)- 用turtlebot仿真巡线机器人
  12. stagefright概述
  13. Xshell6 + Xftp6 绿色破解
  14. 我是如何同时在字节和微信成功拿到实习转正offer!
  15. python中def fun()是什么意思_python def 参数
  16. android ionic框架,移动App开发框架—Ionic
  17. android调用Camera.open方法报错“Too many cameras already open”
  18. win10蓝屏提示重新启动_电脑蓝屏五大要素,秒判蓝屏问题及处理!
  19. python入门指南by许半仙-Python入门指南 作者:许半仙(4)
  20. 怎样消除幸存者偏见?——谈谈成败观

热门文章

  1. Java初级项目学习第一讲:Maven项目构建
  2. 昇腾 (Ascend) AI 处理器:达芬奇架构
  3. 黑马程序员_Java_异常
  4. 江西彩礼到底有多高?我问了问身边的朋友们……
  5. 闪存芯片NAND FLASH的封装
  6. maya2018英文翻译_maya2018英文怎么切换中文?
  7. phpyun职位表“phpyun_company_job”添加字段,保存数据到数据库
  8. 在Windows中编辑好的汉字文档,上传到Linux下打开乱码问题
  9. 深入理解Java虚拟机(周志明第三版)- 第十二章:Java内存模型与线程
  10. 晁盖与吴用 3gp转换软件