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

龙华区深圳北站一起做网店的类似网站

龙华区深圳北站,一起做网店的类似网站,租车公司网站 模板,个人介绍网页制作xlua作为Unity资源热更新的重要解决方案api,在Tecent重多游戏中被采用,本文通过案例去讲解xlua代码结构层次。 /** Tencent is pleased to support the open source community by making xLua available.* Copyright (C) 2016 THL A29 Limited, a Tence…

xlua作为Unity资源热更新的重要解决方案api,在Tecent重多游戏中被采用,本文通过案例去讲解xlua代码结构层次。

/** Tencent is pleased to support the open source community by making xLua available.* Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved.* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at* http://opensource.org/licenses/MIT* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
*/using UnityEngine;
using XLua;namespace XLuaTest
{public class Helloworld : MonoBehaviour{// Use this for initializationvoid Start(){//创建xlua虚拟机LuaEnv luaenv = new LuaEnv();luaenv.DoString("print('hello xlua!')");luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");//释放资源luaenv.Dispose();}// Update is called once per frame}
}

image.png

加载lua文件

Resources.Load(“xlua/xx.lua”) 加载

创建Resources 目录下xx.lua.txt文件

//创建xlua虚拟机【建议全局唯一】
LuaEnv luaenv = new LuaEnv();
//加载lua脚本资源
TextAsset textAsset = Resources.Load<TextAsset>("xlua/hello.lua");
luaenv.DoString(textAsset.ToString());

loader加载

luaenv.DoString("require 'xlua/hello'"); //require + 'lua文件名称不加扩展名'
//require 实际上是逐个查找loader文件 是否存在指定文件

自定义loader

挨个查找loader,若某个loader返回了字节数组,那么便不继续查找了

  //加载loaderluaenv.AddLoader(Myloader);luaenv.DoString("require 'xlua/hello'");//挨个查找loader,若某个loader返回了字节数组,那么便不继续查找了//释放资源luaenv.Dispose();/// <summary>/// 自定义loader/// </summary>/// <param name="filePath"></param>/// <returns></returns>private byte[] Myloader(ref string filePath){print(filePath);string s = "print(123)";return Encoding.UTF8.GetBytes(s);}

image.png

构建Assets/StreamingAssets文件夹

  private byte[] Myloader(ref string filePath){//print(filePath);string absPath = Application.streamingAssetsPath + "/" + filePath + ".lua.txt";return Encoding.UTF8.GetBytes(File.ReadAllText(absPath));}

C#访问lua文件

全局变量

加载文件成功后,访问lua文件中的全局变量
–number 可以对应int float double

           //通过luaenv 访问变量int integer_Lua = luaenv.Global.Get<int>("Integer");string name_Lua = luaenv.Global.Get<string>("Name");Debug.Log(integer_Lua + name_Lua);

//lua文件中person = {Name = "James",Sno = 23,eat = function()print("i'm eating!")end}
//
//C#
class Person{public string _name;public int _sno;}Person luaPerson = luaenv.Global.Get<Person>("person");print(luaPerson._sno + ":" + luaPerson._name);

接口

IPerson luaPerson = luaenv.Global.Get<IPerson>("person");print(luaPerson.sno + ":" + luaPerson.name);[CSharpCallLua]interface IPerson{string name { get; set; }int sno { get; set; }void eat();}

字典

dic = {china = 1,america = 2,uk  = 3,
}
 //通过字典遍历Dictionary<string,int> dic =  luaenv.Global.Get<Dictionary<string, int>>("dic");foreach (var key in dic.Keys){print(key + ":" + dic[key]);}

image.png

列表

list = {'sdahjk',12,123,'12'}
  //通过list访问List<object> list =  luaenv.Global.Get<List<object>>("list");foreach (var target in list){print(target.ToString());}

再将上述数据通过List读取一次
image.png

LuaTable

LuaTable table = luaenv.Global.Get<LuaTable>("person");table.Get<string>("name");

函数

 [CSharpCallLua]delegate int Add(int a, int b);//函数Add add = luaenv.Global.Get<Add>("add");print(add(3,5));add = null;

lua多返回值通过,out 变量接受

add = function(a,b)return a + b,a,b
end
 delegate int Add2(int a, int b, out int resa, out int resb);

使用LuaFunction (性能差)

LuaFunction add = luaenv.Global.Get<LuaFunction>("add");object[] objects = add.Call(3, 5);print(objects[0]);
http://www.15wanjia.com/news/190208.html

相关文章:

  • 怎么用代码创建网站教程合肥小程序建设
  • 网站开发虚拟主机管理系统阿里云如何购买域名
  • 一个空间能放几个网站学网页设计在哪学
  • 佛山公司建网站竞价推广出价多少合适
  • 制作网站基本步骤开源商城小程序
  • 网站服务器在本地是指网络营销项目
  • 找深圳网站建设电商设计模板
  • 建网站备案需要的材料支付宝小程序
  • 服装公司网站源码免费制作app生成器网站
  • 成华区建设局质检站网站产品软文范例软文
  • 企业公司网站免费正规大数据查询平台
  • 开发网站如何选需要首钢建设二建设公司网站
  • 哪个市文化和旅游网站做的好ih5网页制作教程
  • 常熟有哪些网站建设公司十大app黄皮软件排行榜
  • 网站设置不可粘贴网站建设盈利
  • 024 网站推广网站 建设标准
  • 搭建网站需要什么技术电商分销平台
  • 建设网站目的是什么如何建设网站安全管理制度
  • 有没有免费开网站的固安做网站的
  • 网站开发详细流程无锡网站seo顾问
  • 做网站刷QQ会员网站巢湖城市建设投资有限公司网站
  • 网站的地图要怎么做网站开发外包维护合同
  • 桂林微物网络科技有限公司东莞神马seo推广排名
  • 谷歌网站收录提交入口什么是响应式设计
  • wordpress幻灯片太卡seo如何优化
  • 模块化网站建设 局域网邢台做移动网站公司电话
  • 电商网站后台管理系统做开锁推广什么网站好
  • 百度收录网站收费吗qq邮箱登录入口网页版
  • 做公司网站 烟台广州个人做网站
  • 公司网站建设计入明细科目左侧导航栏网站模板