当前位置: 首页 > ds >正文

ILRuntime中实现OSA

什么是ILRuntime?

ILRuntime项⽬为基于C#的平台(例如Unity)提供了⼀个 纯 C# 实现 , 快速 、 ⽅便 且 可靠 的IL 运⾏时,使得能够在不⽀持JIT的硬件环境(如iOS)能够实现代码的热更新。具体可以学习: http://http s://ourpalm.github.io/ILRuntime/public/v1/guide/index.html ,本文不再赘述。

代码实现

OSABaseAdapter

using System;
using ILRuntime.Runtime.Enviorment;
using ILRuntime.Runtime.Intepreter;
using ILRuntime.CLR.Method;
using Com.TheFallenGames.OSA.Core;
public class OSABaseAdapter : CrossBindingAdaptor
{public override Type BaseCLRType{get{return typeof(Com.TheFallenGames.OSA.Core.OSA<Com.TheFallenGames.OSA.CustomParams.BaseParamsWithPrefab, Com.TheFallenGames.OSA.Core.BaseItemViewsHolder>);}}public override Type AdaptorType{get{return typeof(Adaptor);}}public override object CreateCLRInstance(ILRuntime.Runtime.Enviorment.AppDomain appdomain, ILTypeInstance instance){return new Adaptor(appdomain, instance);}//为了完整实现MonoBehaviour的所有特性,这个Adapter还得扩展,这⾥只抛砖引⽟,只实现了最常⽤的Awake, Start和Updatepublic class Adaptor : Com.TheFallenGames.OSA.Core.OSA<Com.TheFallenGames.OSA.CustomParams.BaseParamsWithPrefab, Com.TheFallenGames.OSA.Core.BaseItemViewsHolder>, CrossBindingAdaptorType{ILTypeInstance instance;ILRuntime.Runtime.Enviorment.AppDomain appdomain;public Adaptor(){}public Adaptor(ILRuntime.Runtime.Enviorment.AppDomain appdomain, ILTypeInstance instance){this.appdomain = appdomain;this.instance = instance;Start();}public ILTypeInstance ILInstance{get { return instance; }set{instance = value;}}public ILRuntime.Runtime.Enviorment.AppDomain AppDomain{get{return appdomain;}set { appdomain = value; }}IMethod mStart;bool mStartGot;protected override void Start(){base.Start();}IMethod mInitData;bool mInitDataGot;public void InitData(){if (!mInitDataGot){mInitData = instance.Type.GetMethod("InitData", 0);mInitDataGot = true;}if (mInitData != null){appdomain.Invoke(mInitData, instance, null);}}IMethod mCreateViewsHolder;bool mCreateViewsHolderGot;protected override BaseItemViewsHolder CreateViewsHolder(int itemIndex){if (!mCreateViewsHolderGot){mCreateViewsHolder = instance.Type.GetMethod("CreateViewsHolder", 1);mCreateViewsHolderGot
http://www.xdnf.cn/news/7971.html

相关文章:

  • CAU人工智能class3 优化器
  • Python MD5加密算法脚本
  • Java线程池调优与实践经验
  • JavaScript-DOM-02
  • DS18B20 温度传感器实验探索与实践分享​
  • 深度学习Y8周:yolov8.yaml文件解读
  • Leetcode-3 判断根结点是否等于子结点之和
  • Universal Media Server (UMS)部署指南
  • HTTP相关内容
  • 【Java高阶面经:数据库篇】12. MySQL锁机制全解:从行锁到死锁优化的深度指南
  • 十七、面向对象底层逻辑-MessageSource接口设计
  • 鸿蒙开发:应用上架第二篇,申请发布证书
  • CSS 链接样式全解析:从基础状态到高级交互效果
  • Docker的网络介绍
  • canvas(二)-动画(2d)
  • 人工智能解析:技术革命下的认知重构
  • 贪心算法 Part04
  • 【VLNs篇】03:VLMnav-端到端导航与视觉语言模型:将空间推理转化为问答
  • Dirsearch 深度使用教程:从基础扫描到携带 Cookie 探索网站
  • Oracle审计用户登录信息
  • TCP全连接和tcpdump抓包实现
  • Gradle下载安装及配置
  • AI就是个fw
  • 流式优先架构:彻底改变实时数据处理
  • AI加速芯片全景图:主流架构和应用场景详解
  • 49、c# 能⽤foreach 遍历访问的对象需满足什么条件?
  • Python爬虫实战:获取小说网最新风云榜数据并分析,为创作者提供参考素材
  • QMK固件RGB矩阵照明功能详解 - 打造你的专属炫彩键盘
  • 人工智能范式:技术革命下的认知重构
  • 分类预测 | Matlab实现PSO-RF粒子群算法优化随机森林多特征分类预测