uLua学习之创建游戏对象(二)
前言
上节,刚刚说到创建一个“HelloWorld”程序,大家想必都对uLua有所了解了,现在我们一步步地深入学习。在有关uLua的介绍中(在这里),我们可以发现它使用的框架是Lua + LuaJIT + LuaInterface,其中Lua就是我们的主角,LuaJIT是采用C语言写的Lua的解释器,LuaInterface则用于实现Lua和CLR的混合编程。也就是说LuaJIT和LuaInterface提供对Lua脚本语言的支持。在今天我们要用到的功能来讲,我们先要来说说LuaInterface吧!
LuaInterface简介
LuaInterface.Lua类是CLR访问Lua解释器的主要接口,一个LuaInterface.Lua类对象就代表了一个Lua解释器(或Lua执行环境),Lua解释器可以同时存在多个,并且它们之间是完全相互独立的。我们可以利用LuaInterface的luanet在Lua中加载CLR的类型,也就是说可以使用luanet来使用unity3d中命名空间里的类了。今天用到了两个函数:load_assembly函数:加载CLR程序集;import_type函数:加载程序集中的类型。
添加粒子系统
相关代码如下:

其中,我们要用的lua脚本是以字符串形式存在的,这点要牢记。在脚本字符串前面有一个@字符,这是用于控制转义字符,一般在带有转义字符或者很长一段string值有换行时都会用到@。脚本第三行生成了一个局部变量newGameObj,然后给它赋一个新生成的游戏对象,名字是NewObj。下一行则给这个游戏对象添加了一个粒子系统。这就是一个简单的对象生成。然后在Start方法中用DoString执行这个脚本就可以看到效果了,如下所示:

有了这个思路,我们不妨试试生成其他的游戏物体。
进行面板操作
我们可以添加一个GUIText并进行属性面板赋值操作,说到这里,你应该想到了什么,没错,就是可以用这个来进行数据配置文件的动态更新,用Lua脚本的方式要比xml,ini文件更加方便,这也是lua脚本的魅力所在。相关代码如下:

运行后,我们可以看到在场景中有一个NewObj对象,并且已经添加了GUIText组件,它的属性面板截图如下,明显地应用了我们所给定的值:

结束语
今天就先到这里吧,本人也是刚接触这个,摸着石头过河,有所错误在所难免。希望诸位大神能够批评指正,我将十分感激。有什么建议,欢迎访问我的个人网站(http://chunqiuyiyu.sinaapp.com/),我们共同学习进步。下篇文章再见!
uLua学习之创建游戏对象(二)的更多相关文章
- Ajax 学习之创建XMLHttpRequest对象------Ajax的核心
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- java学习之创建线程方法二
我们上一节当中讲到了创建线程的第一种方法,就是继承Thread类,覆写Thread当中的run方法,然后创建子类对象,之后调用对象的start方法启动线程.但是这种方法有一个缺陷,因为我们知道在jav ...
- python学习笔记——创建事件对象Event
1 Event对象的基本概述 用 multiprocessing.Event 实现线程间通信,使用multiprocessing.Event可以使一个线程等待其他线程的通知,我们把这个Event传递到 ...
- Ajax学习系列——创建XMLHttpRequest对象
Ajax - 创建XMLHttpRequest对象 首先介绍什么是XMLHttpRequest: XMLHttpRequest是Ajax的基础.中文可以解释为可扩展超文本传输请求.术语缩写为XHR. ...
- java web学习总结(八) -------------------HttpServletResponse对象(二)
一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,
- javaweb学习总结(八)——HttpServletResponse对象(二)
一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,
- avaweb学习总结(八)——HttpServletResponse对象(二)
一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,
- javaweb学习总结(八)——HttpServletResponse对象(二)(转)
(每天都会更新至少一篇以上,有兴趣的可以关注)转载自孤傲苍狼 一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedI ...
- html5学习笔记5--API Range对象(二)
Range对象之cloneRange和cloneContents 代码效果如下 首次点击“选择内容“按钮提示如下 接着会显示 最后显示 以下为整个代码 <!DOCTYPE html> &l ...
随机推荐
- jquery ajax + struts2用例
ajax var url = '/itsm/contract/contract!deleteShopItemById.action'; var shopItemId= selectRows[x].da ...
- 交叉编译Spice-gtk
Fedora环境 编译环境 操作系统: 64位 Fedora23 下载源文件 spice-gtk.spice-protocol 安装依赖 $ sudo yum install -y dh-autore ...
- 微信小程序小结(2) ------ 自定义组件
在小程序中有模板跟组件的概念.但模板更多的用于内容的展示,更复杂的交互逻辑就没办法了.所以在小程序中也定义了一些组件来解决一些简单逻辑的功能. 但有时预定义的组件并不能满足我们的需求,这时就需要我们自 ...
- Java Web之分页的实现(通用)
一.用到的工具类的封装 为了实现代码的重用性,我们将经常用到的代码封装到工具类中,以便在任何地方都可以调用 1.获取路径工具 在jsp页面中,我们经常会向Servlet发送请求,并通过反射,实现通过传 ...
- Filter&Listener
Filter&Listener 内容待补充... ...
- Docker存储卷
六.Docker 存储卷(volume) COW:写时复制 Bind mount volume:手动mount绑定的卷 # docker run --name centos-3 -it -v /dat ...
- 从输入URL到浏览器显示页面
去看经典是不会错的,如果觉得太长,那就休息一下继续看. 经验告诉我,读一篇经典足矣,不要浪费时间去搜索其他地方到处复制粘贴的博文. 所以奉上我过滤的经典: 1.How browser work 2.h ...
- vue中点击空白处隐藏弹框(用指令优雅地实现)
在写vue的项目的时候,弹框经常性出现,并要求点击弹框外面,关闭弹框,那么如何实现呢?且听我一一...不了,能实现效果就好 <template> <div> <div c ...
- React学习记录
托webpack的福,我终于可以开始写React了.==ORZ 我感觉我接近webpack工程师更进一步了哈哈哈. 以下所有内容均来自小红书,仅是我的个人记录,如想系统学习,请移步:React小书 : ...
- JD孔_20160920
1. 2. 3.