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

2008建立的php网站慢校园风险管理网站建设方案

2008建立的php网站慢,校园风险管理网站建设方案,网站上的ar是什么软件做的,注册域名后怎么建网站引言 ILRuntime是一款基于C#的热更新框架,使用IL2CPP技术将C#代码转换成C代码,支持动态编译和执行代码,适用于Unity3D的所有平台,包括Android、iOS、Windows、Mac等。本文将详细介绍ILRuntime在Unity3D中的开发原则及接口绑定技术…

引言

ILRuntime是一款基于C#的热更新框架,使用IL2CPP技术将C#代码转换成C++代码,支持动态编译和执行代码,适用于Unity3D的所有平台,包括Android、iOS、Windows、Mac等。本文将详细介绍ILRuntime在Unity3D中的开发原则及接口绑定技术,并提供相关代码示例。

对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!

ILRuntime基本开发原则

  1. 理解两个不同执行环境
  • ILRuntime的逻辑热更项目中的类不能直接继承Unity C#项目中的类,Unity C#项目中也不能直接识别逻辑热更项目中开发的“组件类”。
  • Unity C#的对象实例与接口在逻辑热更项目中不能直接new出来,需要通过Unity C#项目传递过来或直接调用Unity C#项目的接口生成。
  • 逻辑热更项目的功能
  • 逻辑热更项目主要负责代码逻辑,使用Unity做好的资源、Unity引擎与Unity C#项目提供的基础服务。
  • 热更新时,将逻辑热更项目生成的.dll当作二进制资源进行更新。

  1. ILRuntime项目的启动流程
  • 启动Unity C#的代码,下载并加载最新的逻辑代码.dll(逻辑热更项目生成)。
  • ILRuntime解释器解释执行逻辑代码.dll,进入逻辑代码的入口。
  • 逻辑代码使用底层的资源、Unity组件与底层C#开发的接口。

接口绑定技术详解

ILRuntime通过生成绑定代码,使得逻辑热更项目可以调用Unity引擎的API。这一技术主要依赖于.NET的.dll和ILRuntime的绑定机制。

  1. 绑定代码生成
  • 在进行.dll开发时,如果调用了其他.dll库,生成.dll时会为调用的接口做一个“符号”。
  • 运行时,根据符号加载依赖的.dll,然后重定向这些符号,使得在调用时能够跳到正确的函数。
  • 具体实现步骤
  • 安装ILRuntime插件,导入Unity3D。
  • 创建一个热更新脚本,继承ILRuntime.Runtime.CLRBinding.BindingCodeGenerator,并实现GenerateBindingCode方法。
  • 在Unity3D中,通过菜单栏的Tools->ILRuntime->Generate CLR Binding Code生成绑定代码。

代码实现

以下是一个简单的例子,演示如何使用ILRuntime进行热更新及接口绑定。

  1. 创建热更新脚本
using System;
using System.Collections.Generic;
using ILRuntime.Runtime.CLRBinding;
public class HotfixCodeGenerator : BindingCodeGenerator
{
public override IEnumerable<Type> GetTypesToGenerate()
{
return new Type[] { typeof(int), typeof(string) };
}
public override IEnumerable<MethodInfo> GetMethodsToGenerate()
{
return null;
}
public override IEnumerable<PropertyInfo> GetPropertiesToGenerate()
{
return null;
}
public override IEnumerable<FieldInfo> GetFieldsToGenerate()
{
return null;
}
public override IEnumerable<EventInfo> GetEventsToGenerate()
{
return null;
}
public override IEnumerable<Type> GetCrossBindingTypes()
{
return null;
}
}
  1. 生成绑定代码
  • 在Unity3D中,打开菜单栏的Tools->ILRuntime->Generate CLR Binding Code,选择刚才创建的热更新脚本HotfixCodeGenerator.cs,点击Generate按钮生成绑定代码。
  • 创建HotfixManager脚本
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using ILRuntime.Runtime.Enviorment;
public class HotfixManager : MonoBehaviour
{
private static HotfixManager instance;
public static HotfixManager Instance
{
get
{
if (instance == null)
{
instance = FindObjectOfType<HotfixManager>();
}
return instance;
}
}
private AppDomain appDomain;
private void Awake()
{
instance = this;
}
public void Init()
{
appDomain = new AppDomain();
string dllPath = Application.streamingAssetsPath + "/Hotfix.dll";
if (File.Exists(dllPath))
{
byte[] dllBytes = File.ReadAllBytes(dllPath);
MemoryStream dllStream = new MemoryStream(dllBytes);
appDomain.LoadAssembly(dllStream);
}
}
public object Invoke(string typeName, string methodName, object[] args)
{
object obj = appDomain.Instantiate(typeName);
return appDomain.Invoke(methodName, obj, args);
}
}
  1. 在游戏启动时初始化ILRuntime并加载DLL
void Start()
{
HotfixManager.Instance.Init();
// 其他初始化代码
}
  1. 调用热更新代码
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
// 假设有一个热更新中的方法名为"HotfixMethod",没有参数
HotfixManager.Instance.Invoke("Namespace.ClassName", "HotfixMethod", null);
}
}

结论

ILRuntime为Unity3D提供了一种高效的热更新方案,通过生成绑定代码,使得逻辑热更项目能够调用Unity引擎的API。本文详细介绍了ILRuntime的基本开发原则、接口绑定技术,并提供了具体的代码实现示例,希望能够帮助开发者更好地理解和应用ILRuntime。

更多教学视频

Unity3D​

www.bycwedu.com/promotion_channels/2146264125

http://www.yayakq.cn/news/921471/

相关文章:

  • 怎么样做美术招生信息网站首航原创网
  • 带dede后台的整套网站源码 数据库连接不上义乌网站建设优化推广
  • 17做网站广州新塘这样自己做网站
  • 电子网站建设方案成都网站建设外包业务
  • 流程网站设计建筑网站水泡网
  • 建设部网站查询公司网站推广的渠道
  • 济南做网站互联网公司排名python在线运行
  • 领卷网站怎么做张家口购物网站开发设计
  • 品牌自适应网站建设广东佛山网络科技有限公司
  • 模具外贸营销网站如何做郑州做营销型网站公司
  • 公司网站设计专业的建设银行信用卡网站是多少
  • 青岛建设厅官方网站asp源代码网站
  • 安阳市住房和城乡建设厅网站店铺设计理念怎么写
  • 海淀做网站的公司网站怎么做文件上传
  • 哪些网站可以做养殖的广告西瓜编程网站怎么做
  • 如何让google收录网站开源购物系统
  • 阿勒泰建设招聘网站大型门户网站建设服务
  • 高端网站定制建站小程序代运营
  • 做互联网营销一般上什么网站网站正在建设中视频
  • 哈尔滨站建筑面积南京网站制作哪家好
  • 建设银行网站打不井wordpress标题属性
  • 德宏做网站大学网站建设招标
  • 看网站时的关键词网站策划方案案例
  • 正在备案怎么建网站河北建设工程信息网更名
  • wordpress站点相关中国建设工程信息网官方网站
  • 网站建设的开发的主要方法长安网站建设软件
  • 企业网站建设中企动力帝国cms 做网站地图
  • 我想在阿里巴巴网站开店_怎么做云平台网站建设方案
  • 网站图片优化器针对餐饮公司推广做网站方法
  • asp.net做织梦网站wordpress 谷歌分析