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

本文共 776 字,大约阅读时间需要 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不允许这么做。

转载于:https://www.cnblogs.com/zhaoqingqing/p/3848013.html

你可能感兴趣的文章
git add --all 为啥不能添加空文件夹,这样设计的初衷是
查看>>
Linux find/grep命令
查看>>
【数据结构与算法】(二) c 语言链表的简单操作
查看>>
单片机地址扩展后
查看>>
linux启动自动加载svn服务
查看>>
NAE支持自定义域名了
查看>>
用js函数处理事件时,有时候可能因为页面部分组件不需要显示,但仍需要执行js,会有报错,但是不想暴露页面,是业务正常进行。。。。...
查看>>
2011谷歌校园招聘笔试题
查看>>
sqlserver不太常见的,可能常见但又疑问的tsql语句
查看>>
ROC曲线、PR曲线
查看>>
C# Windows Phone App 开发,自制LockScreen 锁定画面类别(Class),从【网路图片】、【Assets资源】、【UI】修改锁定画面。...
查看>>
Nikto是一款Web安全扫描工具,可以扫描指定主机的web类型,主机名,特定目录,cookie,特定CGI漏洞,XSS漏洞,SQL注入漏洞等,非常强大滴说。。。...
查看>>
[Google Guava]学习--新集合类型Multimap
查看>>
转:Java NIO系列教程(二) Channel
查看>>
线程相关参数
查看>>
Android提升篇系列:Android项目代码优化实践
查看>>
改造 Android 官方架构组件 ViewModel
查看>>
2400万AI自拍再进阶,荣耀10青春版发布开启新自拍时代
查看>>
贾跃亭被指拿恒大的投资款告投资人 总费用超2000万
查看>>
春运守护者 大陆首批台湾籍乘务长黄佳莹
查看>>