zoukankan      html  css  js  c++  java
  • (转)【风宇冲】Unity3D教程宝典之AssetBundles:第二讲

    原创文章如需转载请注明:转载自风宇冲Unity3D教程学院

           
                                AssetBundles第二讲:AssetBundles与脚本


    所有Unity的AssetBundle,无论是从本地获取 还是www,或者打包整个场景。物体上的脚本都不会被编译。所以AssetBundle打包的时候即使物体上有脚本。导入后其他所有Unity的文件都不会有问题,唯独脚本是没作用的。那能不能用脚本呢? 答案是,可以!

    核心是脚本可以打包进Dll,然后在客户端用System.Reflection下的Assembly来加载。

    步骤:

    开发
    (1)正常开发
    (2)写一个如txt的文本文档,说明物体上挂载的脚本
    (3)最后发布前,打包dll,标注dll版本号
    (4)打包AssetBundle,标注AssetBundle版本号

    客户端
    (1)先下载AssetBundle作为bytes,再保存到本地
    (2)使用AssetBundle.CreateFromMemory加载,再读取GameObject
    (3)下载dll,并根据文档将 脚本加载到对应的GameObject上
    核心代码:
    1.assembly=Assembly.Load (m_WWW.bytes);//从服务器上读取dll,作为assembly。中间可以加bytes的本地保存
    2.System.Type type = assembly.GetType ("ShowOnGUI"); //根据脚本类名称ShowOnGUI得到类
    3.gameObject.AddComponent(type);//将这个脚本挂在到物体上

     
    注意
    System.Reflection的这个做法对端游和安卓都没问题。但是违反苹果的相关规定,iOS可以用LUA。
    打包 code -> assembly -> .bytes -> ab
    使用 ab -> .bytes -> assembly
  • 相关阅读:
    Linux程序分析工具介绍—ldd,nm
    Makefile学习(三)[第二版]
    Linux下的tree命令 --Linux下目录树查看
    Makefile学习(二)[第二版]
    Makefile学习(一)[第二版]
    Linux下top命令详解
    Shell编程入门(第二版)(下)
    mysql用命令行导入sql文件
    javascript的onbeforeunload函数在IOS上运行
    mysql如何利用Navicat 导出和导入数据库
  • 原文地址:https://www.cnblogs.com/wonderKK/p/4266683.html
Copyright © 2011-2022 走看看