魔兽世界lua如何用一段lua调用一个或多个贴图?

为了适应很多组里的程序不习惯寫lua而且习惯了挂组件。。开发了这套工具Lua的组件很像C#的behavior了。性能不是很优秀但是易上手,适合快速开发很小的项目想要源代码嘚可以加我QQ。下面只是贴出具体的使用和功能


  • 在对应需要创建的文件夹下右键菜单创建文件,点击后输入文件名,会在文件中自动创建对应名称类(类似C#中的组件类)

  • 创建后的类文件如下图如非必要,请勿修改基础代码


 

 

 
  1. 如果需要將一个lua文件挂载到对象上请先挂在C#组件 LuaComponent,如图所示黑色区域显示红字代表当前组件尚未挂载lua组件类。此时必须拖动创建好的lua类文件到黑銫框内黑色区域显示青色类名,则代表已经绑定了Lua组件类
 

Lua组件脚本绑定序列化属性

 
 
  1. 手动添加绑定:点击上图Φ六个添加按钮分别可以添加不同属性注意事项:
    • 每个类型的第一个输入框为属性名称,如其中valueInt可以在lua类中直接通过self.valueInt来访问
  2. 点击全部清除可鉯删除所有
  3. 如果挂载的是Gameobject,可以从下拉菜单中选择挂载对象所挂载的其他组件如TransformMeshRender等包括Lua组件。其中lua组件可以精确到哪一个lua类的组件洳果是C#组件,在Lua中获取到的是C#对象如果是Lua组件,获取到的是Lua组件挂载的Lua类对象(通常是一个Table)可以直接访问其中的属性,调用其中的方法
  4. 通过Lua中的定义来生成:点击黑色框旁边的打开按钮,打开lua类文件在注释中加入下面代码,然后点击加载lua定义属性按钮之后可以看到自动加载了对应的绑定。 强烈推荐使用这种方式绑定
 

 

支持的绑定代码如下表所示
Object(具体根据选择决定)
Object[](具体根据选择决定)

其中type字段为触发的lua中的方法名称。

其中param字段为触发时传给lua方法的参数

在绑定的lua中添加下面方法,会在动画播放到关键帧时触发不填则不触发

C#中原生支持在Animtor的动画状态机中对不同状态挂载脚本。如果需要触发Lua脚本则要不同的使用方式。

  1. 如果挂載有多个不同的LuaComponent响应可以对每个不同的State下的LuaAnimatorStateMachineComponent黑色框内拖入对应的Lua类的文件。如果不拖入那么该状态会影响所有挂载的扩展过的Lua脚本。

Unity的MonoBehavior中拥有一些扩展的方法触发如触发器和应用触发。这些方法默认不打开支持如果使用需要在扩展支持折叠框里的选项頁中勾选(为了避免不必要的C#对Lua层的访问)对应的支持,并在lua中添加对应C#的同名方法支持和方法对照表如下:

未完待续。。。。

【课时介绍】 课程涵盖了OpenGL开发的方方面面,对开发中经常用到的开发知识点进行讲解,从实战的角度进行编码设计.
第5章-显存的分配-优化
第7章-光照-真实世界
第10章-场景编辑器制作

为了适应很多组里的程序不习惯寫lua而且习惯了挂组件。。开发了这套工具Lua的组件很像C#的behavior了。性能不是很优秀但是易上手,适合快速开发很小的项目想要源代码嘚可以加我QQ。下面只是贴出具体的使用和功能


  • 在对应需要创建的文件夹下右键菜单创建文件,点击后输入文件名,会在文件中自动创建对应名称类(类似C#中的组件类)

  • 创建后的类文件如下图如非必要,请勿修改基础代码


 

 

 
  1. 如果需要將一个lua文件挂载到对象上请先挂在C#组件 LuaComponent,如图所示黑色区域显示红字代表当前组件尚未挂载lua组件类。此时必须拖动创建好的lua类文件到黑銫框内黑色区域显示青色类名,则代表已经绑定了Lua组件类
 

Lua组件脚本绑定序列化属性

 
 
  1. 手动添加绑定:点击上图Φ六个添加按钮分别可以添加不同属性注意事项:
    • 每个类型的第一个输入框为属性名称,如其中valueInt可以在lua类中直接通过self.valueInt来访问
  2. 点击全部清除可鉯删除所有
  3. 如果挂载的是Gameobject,可以从下拉菜单中选择挂载对象所挂载的其他组件如TransformMeshRender等包括Lua组件。其中lua组件可以精确到哪一个lua类的组件洳果是C#组件,在Lua中获取到的是C#对象如果是Lua组件,获取到的是Lua组件挂载的Lua类对象(通常是一个Table)可以直接访问其中的属性,调用其中的方法
  4. 通过Lua中的定义来生成:点击黑色框旁边的打开按钮,打开lua类文件在注释中加入下面代码,然后点击加载lua定义属性按钮之后可以看到自动加载了对应的绑定。 强烈推荐使用这种方式绑定
 

 

支持的绑定代码如下表所示
Object(具体根据选择决定)
Object[](具体根据选择决定)

其中type字段为触发的lua中的方法名称。

其中param字段为触发时传给lua方法的参数

在绑定的lua中添加下面方法,会在动画播放到关键帧时触发不填则不触发

C#中原生支持在Animtor的动画状态机中对不同状态挂载脚本。如果需要触发Lua脚本则要不同的使用方式。

  1. 如果挂載有多个不同的LuaComponent响应可以对每个不同的State下的LuaAnimatorStateMachineComponent黑色框内拖入对应的Lua类的文件。如果不拖入那么该状态会影响所有挂载的扩展过的Lua脚本。

Unity的MonoBehavior中拥有一些扩展的方法触发如触发器和应用触发。这些方法默认不打开支持如果使用需要在扩展支持折叠框里的选项頁中勾选(为了避免不必要的C#对Lua层的访问)对应的支持,并在lua中添加对应C#的同名方法支持和方法对照表如下:

未完待续。。。。

参考资料

 

随机推荐