如何在我的应用中运行Unity生成的apk,而又不将其作为模块包含在项目中?

时间:2018-08-02 10:21:31

标签: android unity3d

我正在开发一个用于房地产的android应用程序,并且我进行了统一的虚拟导览。由于将来我将进行许多虚拟巡回演出,因此将巡回演出集成到应用程序中将使其变得庞大而沉重。 我希望用户手动选择他想看的游览,然后它应该从云下载并在应用程序中显示。请描述实现此目标的方法。

1 个答案:

答案 0 :(得分:0)

您可以构建自己的核心应用,然后为每个游览制作资产捆绑包:

AssetBundle是一个包含平台特定资产的存档文件 (模型,纹理,预制,音频剪辑,甚至整个场景)可以在运行时加载。 Unity文档: https://docs.unity3d.com/Manual/AssetBundlesIntro.html

以下是从服务器下载资产捆绑包的脚本:

public class MyBehaviour : MonoBehaviour {
    void Start() {
        StartCoroutine(GetAssetBundle());
    }


        IEnumerator GetAssetBundle() {
            UnityWebRequest www = UnityWebRequest.GetAssetBundle("http://www.my-server.com/myData.unity3d");
            yield return www.SendWebRequest();

            if(www.isNetworkError || www.isHttpError) {
                Debug.Log(www.error);
            }
            else {
                AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
            }
        }
    }