unity图表插件能用lua么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity图表插件能用lua么相关的知识,希望对你有一定的参考价值。

unity图表插件能用lua
1.轻量级:Lua用标准C语言编写并以源代码形式开发,编译后仅仅一百余千字节,可以很方便的嵌入到其他程序中。

2.可扩展:Lua提供非常丰富易于使用的扩展接口和机制,由宿主语言(通常是C或C++)提供功能,Lua可以使用它们,就像内置的功能一样。
3.方便做功能的热更新。 4.Lua语言的深度和广度都不大,易学易用,可以降低项目成本。
参考技术A unity图表插件当然能用lua,因为lua系统兼容问题非常容易,能够适用图表的复杂计算,所以是可以使用的。 参考技术B 能用
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。可以方便的与c/c++进行相互调用。但是Unity中主要是用c#进行开发的,因此在Unity中使用Lua通常有以下两种方案:

使用c#实现一个lua虚拟机
基于原生的c lua api做一个封装,让c#调用
参考技术C 是的,Unity图表插件可以使用Lua语言进行开发,开发者可以利用Lua中的语法和API创建出属于自己的专属图表。 参考技术D 是的,unity图表插件可以很方便地使用lua语言编写代码控制图表功能,也可以更容易地定义图表控制界面。

[Unity插件]Lua行为树:条件节点和行为节点

条件节点和行为节点,这两种节点本身的设计比较简单,项目中编写行为树节点一般就是扩展这两种节点,而Decorator和Composite节点只需要使用内置的就足够了。

它们的继承关系如下:

Conditional->Task

Action->Task

 

代码如下:

BTAction.lua

 1 BTAction = BTTask:New();
 2 
 3 local this = BTAction;
 4 
 5 function this:New()
 6     local o = {};
 7     setmetatable(o, self);
 8     self.__index = self;
 9     return o;
10 end

 

BTConditional.lua

 1 BTConditional = BTTask:New();
 2 
 3 local this = BTConditional;
 4 
 5 function this:New()
 6     local o = {};
 7     setmetatable(o, self);
 8     self.__index = self;
 9     return o;
10 end

 

BTLog.lua

 1 --[[
 2 参考BehaviorDesigner-Action-Log
 3 --]]
 4 BTLog = BTAction:New();
 5 
 6 local this = BTLog;
 7 
 8 function this:New(text)
 9     local o = {};
10     setmetatable(o, self);
11     self.__index = self;
12     o.text = text;
13     return o;
14 end
15 
16 function this:OnUpdate()
17     print(self.text);
18     return BTTaskStatus.Success;
19 end

 

BTIsNullOrEmpty.lua

 1 --[[
 2 参考BehaviorDesigner-Conditional-IsNullOrEmpty
 3 --]]
 4 BTIsNullOrEmpty = BTConditional:New();
 5 
 6 local this = BTIsNullOrEmpty;
 7 
 8 function this:New(text)
 9     local o = {};
10     setmetatable(o, self);
11     self.__index = self;
12     o.text = text;
13     return o;
14 end
15 
16 function this:OnUpdate()
17     if (not self.text or self.text == "") then
18         return BTTaskStatus.Success;
19     else
20         return BTTaskStatus.Failure;
21     end
22 end

 

TestBehaviorTree.lua

 1 TestBehaviorTree = BTBehaviorTree:New();
 2 
 3 local this = TestBehaviorTree;
 4 
 5 function this:New()
 6     local o = {};
 7     setmetatable(o, self);
 8     self.__index = self;
 9     this:Init();
10     return o;
11 end
12 
13 function this:Init()
14     local sequence = BTSequence:New();
15     local isNullOrEmpty = BTIsNullOrEmpty:New("");
16     local log = BTLog:New("This is a empty string");
17     sequence:AddChild(isNullOrEmpty);
18     sequence:AddChild(log);
19     this:PushTask(sequence);
20 end

 

输出如下:

技术分享图片

以上是关于unity图表插件能用lua么的主要内容,如果未能解决你的问题,请参考以下文章

Unity 一款基于UGUI的数据可视化图表插件(XCharts 2.0)。

Unity3D插件图表插件XCharts分享

Unity3D插件图表插件XCharts分享

Unity怎么用UGUI制作图表,柱状图,饼图?有现成的插件吗,推荐几款

Unity数据可视化图表插件XCharts3.0发布

Unity xNode节点插件入门使用介绍1