返回介绍

在资源包中加入脚本

发布于 2021-06-19 18:03:26 字数 1092 浏览 867 评论 0 收藏 0

脚本可作为文本资源 (TextAssets) 添加至资源包 (AssetBundles),但实际上,如此情况下的脚本将成为不可运行的代码。如需在资源包 (AssetBundles) 中添加可在应用程序中运行的代码,则需要将其预编译为程序集,并使用 Mono 映射 (Reflection) 类加载程序集(注意:映射不适用于 iOS)。您可在任意普通的 C# 集成开发环境 (IDE)(如 Monodevelop,Visual Studio)中创建程序集,或使用 mono/.net 编译器创建任何文本编辑器。

string url = "http://www.mywebsite.com/mygame/assetbundles/assetbundle1.unity3d";
IEnumerator Start () {
// Start a download of the given URL
WWW www = WWW.LoadFromCacheOrDownload (url, 1);

// Wait for download to complete
yield return www;

// Load and retrieve the AssetBundle
AssetBundle bundle = www.assetBundle;

// Load the TextAsset object
TextAsset txt = bundle.Load("myBinaryAsText", typeof(TextAsset)) as TextAsset;

// Load the assembly and get a type (class) from it
var assembly = System.Reflection.Assembly.Load(txt.bytes);
var type = assembly.GetType("MyClassDerivedFromMonoBehaviour");

// Instantiate a GameObject and add a component with the loaded class
GameObject go = new GameObject();
go.AddComponent(type);
}

返回资源包 (AssetBundles) 简介

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文