博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity By Reflection Update Scripts
阅读量:6976 次
发布时间:2019-06-27

本文共 720 字,大约阅读时间需要 2 分钟。

App热更新需求

我正在使用Unity 3D开发一个Android的应用,它会下载AssetBundles并加载它们的内容,但由于AssetBundles不能包含脚本,我将使用预编译的C#脚本,并使用Mono反射来加载它(我不知道我会怎样,但看着办吧) 。但现在我不知道该如何预编译.cs文件,所以有谁都可以帮助我?

思路分析

把你的脚本通过MonoDevelop/VisualStudio编译成.dll,将你script.dll复制到你的unity project的Resource文件夹,把扩展名从xx.dll改成xx.bytes

根据这个,我可以包括脚本,bytes(二进制数据),并通过反射加载它们。

我了解所有的步骤,除了:我要怎样编译单个文件得到其字节码?是否有任何教程/帮助?

Solution(解决办法)

1.Open Monodevelop and create C#Library project

2.Add UnityEngine.dll to References
3.Compile your scripts
4.Copy bin/xx.dll from your library project folder to Assets of your unity project and change extension from .dll to .bytes
That's all.

原理分析

把Scripts打包进AssetBundles中,在游戏运行时动态下载Assetbundle,通过Reflection来加载并执行其中的方法。

在Android平台是可行的,但IOS是不可行的,因为Apple不允许这么做。

转载地址:http://rbesl.baihongyu.com/

你可能感兴趣的文章
计算机英语单词汇总
查看>>
TCP、UDP和HTTP详解
查看>>
MYSQL数据库设计规范与原则
查看>>
chrome贴吧插件——源代码
查看>>
201621123048《Java程序设计》第六周学习总结
查看>>
Eclipse快捷键大全(转载)
查看>>
python压缩文件脚本
查看>>
把Catalina的字符串格式转化为日期格式
查看>>
【语法】NSMutableString的用法
查看>>
前端知识点总结(html+css)部分
查看>>
VI/VIM 编辑器
查看>>
C#写爬虫,版本V2.0
查看>>
基于Ubuntu16搭建Hadoop大数据完全分布式环境
查看>>
网络爬虫
查看>>
python-memcached学习笔记
查看>>
转--Java工程师成神之路(2018修订版)
查看>>
学习python第一天内容回顾
查看>>
原码,补码表示
查看>>
(最长上升子序列 并记录过程)FatMouse's Speed -- hdu -- 1160
查看>>
面面观 | CentOS install etcd 测试
查看>>