• unity3d资源打包会把哪些打入包


     

    unity 打包的时候会把下面几个文件资源打进apk或者ipa包里面
    1. Asset下的所有脚本文件
    2. Asset下所有引用的文件(比如 场景中直接使用到的资源)
    3. (这里的resorces不是特指根目录下的Resources,也可以是子目录下的,只要文件夹名字叫Resources就可以)Resources文件夹下所有资源,这个文件夹下的资源无论是否被用到,都会被压缩打进包里面,程序中通过Resources.Load来加载
    4 StreamingAssets。这个文件夹会不会被压缩,被原封不动地打进包,是个只读文件夹。有热更新的游戏,会把打包的assertbundle放在这个文件夹下,游戏开始的时候,会把这些assertbundle 拷贝到Application.persistentDataPath目录下(这个目录可以读写)。如果有新的资源,下载到的新assertbundle 会覆盖原来的资源。
    5.Plugins 这个文件夹只能是Assets文件夹的直接子目录。它是用来放native插件的
     
    关于assertbundle,unity  提供了BuildPipeline.BuildAssetBundles方法,我们可以用BuildPipeline.PushAssetDependencies()和BuildPipeline.PopAssetDependencies()处理资源依赖关系。比如:
    //公共的关联性素材绑定
         A  BuildPipeline.PushAssetDependencies();
            assetfile = assetPath + "shared" + AppConst.ExtName;
            mainAsset = LoadAsset("UI/Shared/Atlas/Dialog.prefab");
            addis = new Object[3];
            addis[0] = LoadAsset("Atlas/BattleAtlas.prefab");
            addis[1] = LoadAsset("Atlas/CardAtlas.prefab");
            addis[2] = LoadAsset("Atlas/DialogAtlas.prefab");
      BuildPipeline.BuildAssetBundle(mainAsset, addis, assetfile, options, target);
    ///生成LoginPanel素材绑定
      B     BuildPipeline.PushAssetDependencies();
            mainAsset = LoadAsset("UI/Login/Prefabs/LoginPanel.prefab");
            assetfile = assetPath + "login" + AppConst.ExtName;
            BuildPipeline.BuildAssetBundle(mainAsset, null, assetfile, options, target);
        C    BuildPipeline.PopAssetDependencies();
    ///生成BattlePanel素材绑定
        D  BuildPipeline.PushAssetDependencies();
            mainAsset = LoadAsset("UI/Battle/Prefabs/BattlePanel.prefab");
            assetfile = assetPath + "battle" + AppConst.ExtName;
            addis = new Object[1];
            addis[0] = LoadAsset("UI/Battle/Prefabs/UICard.prefab");
            BuildPipeline.BuildAssetBundle(mainAsset, addis, assetfile, options, target);
        E    BuildPipeline.PopAssetDependencies();
        F  BuildPipeline.PopAssetDependencies();
     
    A和F对应  B和C对应  D和E对应,说明LoginPanel和BattlePanel资源会用到公共资源shared的。
     
    unity5 提供了自动处理依赖关系,不过每个资源都需要在编辑器上手动设置assetbundleName。
    、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

    使用persistentDataPath可以在真实手机上临时保存一些数据,经过测试在真实手机上是不能够使用Application.streamingAssetsPath和Application.dataPath的,如果想临时保存一些数据,只能够用Application.persistentDataPath

     

    上面实现的功能是: 
    在输入框内输入内容 
    点击保存按钮后,将输入框内容保存在Application.persistentDataPath路径下的文件 
    然后再点击显示,将输入框保存的内容再显示出来


    实现代码如下:


    这里写图片描述


    发布到手机上截图如下:

    原文:https://blog.csdn.net/qq_15267341/article/details/52061045
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    C#模拟键盘登录网站
    利用c#开发一个telnet unix服务器或者防火墙的小工具(转)
    Fckeditor XML Request error:internal server error (500) 一例
    CSS格式模板
    TFS 2008: Message that "solution not currently configured for integrated source control in Visual Studio"
    学习笔记Javascript事件Event、IE浏览器下的拖拽效果
    学习笔记验证控件
    学习笔记Socket编程、任务栏图标和MD5散列算法
    学习笔记Web服务、Remoting、WCF (上) Web服务
    学习笔记Web服务、Remoting、WCF (下) Remoting and WCF
  • 原文地址:https://www.cnblogs.com/cyct/p/10641038.html
Copyright © 2020-2023  润新知