Richbabe Blog

立志成为一个游戏开发者.

tolua框架Example样例学习笔记(6)

lua中操作c#的委托事件与lua中对Unity的GameObject的操作

11_UseDelegate 该样例主要讲解如何在lua中操作C#的委托事件,关于C#的委托事件可以看看我这篇博客。 由于这个样例代码过多,所以我们分开来分析,首先来看看TestEventListener.cs: public class TestEventListener : MonoBehaviour { public delegate void VoidDelegate(G...

tolua框架Example样例学习笔记(5)

lua中遍历访问c#的Dictionary类型和枚举类型

09_Dictionary 该样例主要演示了如何在lua中访问C#的Dictionary类型的变量,已经对他进行遍历,删除等操作。 需要注意的是,该样例中的BindMap()只是为了让例子可以独立运行,在实际开发中只要将需要的类型添加在CustomSetting列表中即可。 代码如下: using UnityEngine; using System.Collections.Generi...

tolua框架Example样例学习笔记(4)

lua中的多线程与数组的获取

07_LuaThread 在Lua中不存在传统意义上的多线程,所谓的多线程都是基于协程实现的,所以Lua中的线程也都是那种协作式的多线程,而无法实现那种抢占式的多线程的效果,这也就导致有些效果我们无法得到实现。 如果真的要实现抢占式的效果,可以使用tolua作者封装过的协程。 在这个样例中,我们主要学习如何获得原生的lua线程,并在C#中进行lua线程的挂起、激活等操作。 样例代码如下...

tolua框架Example样例学习笔记(3)

tolua协程的用法

05_LuaCoroutine 由于Lua的协同程序功能相对有限,所以ToLua帮我们对Lua的协同程序进行了扩展,具体文件是在: ToLua/Lua/System/coroutine.lua 它对Lua原生的coroutine进行了扩展。 下面我们来看看样例的代码: lua部分: function fib(n) local a, b = 0, 1 while n...

tolua框架Example样例学习笔记(2)

C#与lua的函数,变量交互方法

03_CallLuaFunction 该样例主要表现了C#怎么调用lua中的函数,核心代码如下: private string script = @" function luaFunc(num) return num + 1 end t...

tolua框架Example样例学习笔记(1)

Unity用C#调用lua代码的方法

前言 本系列博客我将通过tolua框架中的Example样例来简单入门tolua。框架下载地址戳我 Example样例的位置在: 运行第一个样例时报错如下: 根据报错信息在Assets目录下新建一个Lua文件夹即可,该文件夹后面我们将用来保存我们游戏的lua逻辑代码。 01_HelloWorld HelloWorld.cs: using UnityEngine; using Lu...

探究C#中的Delegate、Event和UnityEvent

前言 Event作为C#语言特性的一部分,在.Net开发中具有比较重要的作用。当我们使用C#作为脚本语言编写Unity游戏时,也经常会需要使用Event解决各种问题。然而,相比于传统C#语言的Event,UnityEvent基于Unity引擎做了一些改变,并且更加适合我们的游戏开发。为了帮助读者深入理解UnityEvent,本文会从Delegate讲起,并逐步介绍C# Event 与Unit...

Lua 学习笔记(三)

Lua 文件I/O Lua I/O 库用于读取和处理文件。分为简单模式(和C一样)、完全模式。 简单模式(simple model)拥有一个当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作。 完全模式(complete model) 使用外部的文件句柄来实现。它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法 简单模式在做一些简单的文件操作时较为合适。但...

Lua 学习笔记(二)

Lua table(表) Lua table是不固定大小的关联性数组,可以使用任意类型的值来作数组的索引,但这个值不能是nil。 Lua(表)的构造 构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。可以直接初始化数组: -- 初始化表 mytable = {} -- 指定值 mytable[1]= "Lua" -- 移除引用 m...

Lua中的三目运算符

三目运算 熟悉 C/C++ 的老司机都知道三目运算 a ? b : c,这种写法替换简单的条件判断语句可以在不增加阅读难度的情况下,使代码尽量保持简洁。 int a, b, ret; //if-else if (a > b) ret = a; else ret = b; //三目运算符 ret = a > b ? a : b; Lua 中的三目运算 Lua...