![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lua
17岁的勇气
很多人30岁就死掉了 只不过七八十岁才埋
展开
-
lua实现面向对象深度解析
先了解一下原表 __index __newindex__index步骤1.在表中查找,如果找到,返回该元素,找不到则继续步骤2步骤2.判断该表是否有元表,如果没有元表,返回nil,有元表则继续步骤3步骤3.判断元表有没有__index方法,如果__index方法为nil,则返回nil;如果__index方法是一个表,则重复步骤1、2、3;如果__index方法是一个函数,则调用该函数,并返回该函数的返回值__newindex 可以等于一个表 也可以等于一个函数__newindex只会在添加原表原创 2021-08-02 11:47:00 · 354 阅读 · 0 评论 -
为什么说 游戏开发使用lua 必须要了解闭包
网上搜了一下 大家的理解是:1.在外部无法获取到func内部的局部变量,但是func内部的func1局部方法却可以获取到,因此返回一个func内部的局部变量的引用 ,这样在外部通过这个返回值就可以获取到func的内部变量。2.虽然是绕了一个圈子,但是在方法外部却通过这样一个手段获取到了内部的值。而这个方法内的局部方法func1就叫做闭包,按照很多书上的概念,这个方法搭建了方法内部与方法外部的桥梁,使得在外部也可以任意的获取到方法内部的资源。3.重点!!!!: 但是闭包会造成变量在内存中持久占用,因此会原创 2021-03-15 09:48:32 · 252 阅读 · 0 评论 -
lua和C#交互原理 刨根问底
热更新原理:就是C#可以和lua进行交互lua可以重写C#的函数lua和C#是怎么进行交互的?lua与其他语言交互,都是通过操作虚拟栈交流的。而操作虚拟栈最原始的方法就是通过lua与c语言的api那其它语言是怎么访问到这个虚拟栈 怎么能确保访问到的是同一个栈?可以为 一个lua文件单独开一个虚拟栈 不管你C#和Lua怎么交互交互的对象首先是一个文件 文件肯定是单独的lua调用C#:lua_pushstdcallcfunction(L, SayHello),将c#的方法SayHel..原创 2021-01-22 20:24:20 · 1338 阅读 · 0 评论 -
记录Lua的几个坑
1.if … elseif if parentName == "UpLeft" then self:SetChildPosByParam(3,3,107,100,20) elseif parentName == "UpRight" then self:SetChildPosByParam(5,5,-107,-100,-20) elseif pare...原创 2020-04-24 10:49:27 · 283 阅读 · 0 评论 -
从零开始搭xlua框架(三)实现类似C#UnityEngine.MonoBehaviour.Invoke
之前一直在纠结lua里面没有invoke这个函数 很不方便 就一直在网上找lua中的延迟调用函数发现根本就没有 我想要的答案 后来跑xlua的交流群里面去问了一下 终于有人给解决方案了实际上很简单的一件事 只是自己有点死脑壳 想不通解决方案: C#端实现 定时器 给lua调用就好了C#端using System;using System.Collections.Generi...原创 2020-01-09 16:06:00 · 726 阅读 · 0 评论 -
从零开始搭xlua框架(二)xlua灵活调用C# MonoBehaviour的一些回调函数 (回调函数可热更新)
xlua灵活调用C# MonoBehaviour的一些回调函数 (Update,OnDestroy)C#端using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;public class LuaComponent : MonoBehaviou...原创 2020-01-09 14:58:03 · 1070 阅读 · 0 评论 -
lua和C#几个不同的点
一.tempTable = {“c”,“h”,“l”}otherTable = tempTable把表tempTable赋值给otherTable tempTable里面的内容改变otherTable相对的内容也会跟着改变 因为这样子的赋值只是直接把tempTable的内存地址赋值给otherTable所有如果想要tempTable和otherTable相互不影响可以直接遍历赋值temp...原创 2020-01-07 11:42:52 · 233 阅读 · 0 评论 -
从零开始搭xlua框架(一) C# 事件的原理 已经在如何在lua里面实现事件
C#事件的订阅相当于把所有订阅这个事件的函数都加入到一个函数列表里面去了C#事件的取消订阅相当于把这个函数从事件对应的函数列表移除出去当事件的实例执行的时候会遍历函数列表依次执行所有函数(有点类似 但注册两次 不会执行两次 应该是注册的时候会判断函数列表里面有没有这个函数如果有就不多次注册了 )如果想做热更新就要用Lualua里面是没有事件这个概念的 但如果知道C#的原理可以自己实现...原创 2020-01-02 15:10:31 · 614 阅读 · 0 评论 -
lua for循坏和迭代器
普通for循环for var=exp1,exp2,exp3 do <执行体> end var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 “执行体”。exp3 是可选的,如果不指定,默认为1。函数for循环function f(x) print("function") return x*2...原创 2020-01-07 11:21:39 · 121 阅读 · 0 评论