CryENGINE3初探Entities (一)----使用Lua创建一个自定义Entity并为其添加节点
来源:互联网 发布:国联证券软件下载 编辑:程序博客网 时间:2024/06/10 18:59
终于要开始进入第三章了,第三章的主体内容是CE3的游戏物体系统。今天我们先不管那么多,我们直接动手创建两个小例子,来一起学习一下,如何使用Lua脚本来创建一个自定义的Entity并为其添加节点,与其他Entity交互。
整个游戏过程中,LuaEntity的创建与运行主要是通过两个文件来实现,一个是定义文件.ent,一个是脚本文件.lua,两个文件存放的路径分别是:GameSDK/Entities/MyLuaEntity.ent和Scripts/Entities/Others/MyLuaEntity.lua
这里一定要注意:路径一定要正确!!!否则你将花费大量的时间来做无用功!好了,现在开始创建:
(一)创建Entity
1. 创建定义文件MyLuaEntity.ent
文件内容如下:(推荐大家使用Notepad++编辑)
<Entity Name="MyLuaEntity" Script="Scripts/Entities/Others/MyLuaEntity.lua"/>
定义文件的作用是告诉引擎,有这么一个Entity,在这里主要定义了Entity的脚本文件位置。做完这一步,就可以打开CE3来看看效果。
首先系统会输出错误
我们在others里面发现了MyLuaEntity,拖放一个Entity进入场景,它没有任何特性(Property)。
我们成功找到了MyLuaEntity,但是他没有任何的特性。接下来,这些特性就要靠.lua文件来编辑了。
2.创建脚本文件MyLuaEnity.lua
在对应目录创建.lua文件后,就可以编辑了(这里推荐大家使用LusStudio)。输入如下代码:
MyLuaEntity={ Properties= { myProperty="", },}
保存,并打开CE3查看
在FG中添加节点测试:
接下来我们来为它添加节点,给他添加功能
3. 为LuaEntity添加节点
扩充.lua文件,最终文件如下:
----------------------------------------------------------------------------------个人总结:一个完整的Lua脚本共三部分----------------------------------------------------------------------------第一部分:特性部分--------------------------------------------------------------------------MyLuaEntity={ Properties= { myProperty="", },}----------------------------------------------------------------------------第二部分:函数部分--------------------------------------------------------------------------function MyLuaEntity:Event_OnBooleanPort()BroadcastEvent(self,"MyBooleanOutput");end----------------------------------------------------------------------------第三部分:节点部分--------------------------------------------------------------------------MyLuaEntity.FlowEvents={ Inputs= { MyBooleanPort={MyLuaEntity.Event_OnBooleanPort,"bool"},Vec3Test="Vec3", }, Outputs= { MyBooleanOutput="bool", },}
打开CE3,查看效果
(二)总结一下
好了,目前为止,我们已经可以使用Lua创建一个自定义的Entity,并可以随意为它添加节点,扩展它的功能了。这样下来,我们可以直接解压GameSDK下Scripts.pak文件解压,惊讶的发现基本上引擎里所有的entity都是用lua来创建的,而且你也会发现,他和我总结的lua文件的那三部分也是统一的,这样我们就可以学习引擎默认给我们提供的Entity代码。
好了,今天就只能更新到这里了,我最近各种考试,手里的比赛项目也要截止了,所以以后应该是在半个月内更新的要比较慢了,希望大家谅解。
下次我们更新的内容是:使用C++实现上述过程,关于Entity这一章节的重要概念和描述,我会在下下次和大家一同分享!
最后,还是那句话,如果大家有疑问,欢迎大家提出来,我们一起等大牛来帮我们解决。转载请注明来源,谢谢。
- CryENGINE3初探Entities (一)----使用Lua创建一个自定义Entity并为其添加节点
- CryENGINE3初探Entities (二)----使用C++创建自定义Entity(一)
- CryENGINE3初探Entities (三)----初试Input输入系统,搭配Lua使用C++创建完整逻辑的entity
- CryENGINE3初探Flowgraph(FG)(三)----使用C++创建自定义Node
- 初始化TreeCtrl并为其添加节点和小图标
- 创建cocos2d-x lua并使用一个lua脚本
- 直接创建一个DataTable,并为之添加数据(自定义DataTable)
- 直接创建一个DataTable,并为之添加数据(自定义DataTable)
- C# 直接创建一个DataTable,并为之添加数据(自定义DataTable)
- 直接创建一个DataTable,并为之添加数据(自定义DataTable)
- C# 直接创建一个DataTable,并为之添加数据(自定义DataTable)
- C# 直接创建一个DataTable,并为之添加数据(自定义DataTable)
- DOM(一)-16-(节点操作-创建并添加_1)
- DOM(一)-17-(节点操作-创建并添加_2)
- DOM创建并添加节点
- 02、react 之创建一个虚拟的节点并使用
- 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
- 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
- UIActivityIndicatorView的详细使用
- 用字符串实现大数相乘
- 搭班子 定战略 带队伍---联想柳传志管理三要素
- 一些正则表达式替换的实例
- 拿来主义:觉得不错和大家分享-----实训数据库开发应用——SQL查询
- CryENGINE3初探Entities (一)----使用Lua创建一个自定义Entity并为其添加节点
- 【算法设计与分析】5、最长公共子序列
- 【算法设计与分析】6、最大字段和
- HTTP 服务器开发(Java)--HTTP请求
- 命令模式
- 【算法设计与分析】7、0/1背包问题,动态规划
- Android call requires API level解决之刃
- 世界阻燃剂前景分析
- codeforce 277.5 A