Unity中使用 slua --- 调用c#方法
来源:互联网 发布:sql select语句 where 编辑:程序博客网 时间:2024/06/06 04:18
slua下载地址:https://github.com/pangweiwei/slua
1.在使用slua 每次make 最后都执行一次claer
2.在你需要调用的c#类中添加 [CustomLuaClass] 特性
绑定在Camera的脚本
using UnityEngine;using System.Collections;using SLua;[CustomLuaClass]public class ChatRoom : MonoBehaviour { //在别的项目实现的Tcp Socket private Server sever = null; // Use this for initialization void Start () { sever = new Server("127.0.0.1", 6523); } // Update is called once per frame void Update () { } /// <summary> /// 连接服务器 /// </summary> //slua 要调用的方法 public void Connect() { sever.Connect(); } //slua要调用的方法 public void OnClickMsgSendButEvent(string text) { string[] setext = { text }; sever.SendMessage(sever.BuildDataPackage(10011, setext)); }}
绑定Gameobject的脚本(可以随便创建一个绑定)
using UnityEngine;using System.Collections;using SLua;using System.IO;public class ChatRoomManager : MonoBehaviour { LuaSvr lua_Svr; LuaTable self; LuaFunction start; private void Awake() { lua_Svr = new LuaSvr(); LuaState.loaderDelegate = ((string fn) => { string path = Directory.GetCurrentDirectory() + "/Assets/Resources/" + fn; Debug.Log(path); return File.ReadAllBytes(path); }); lua_Svr.init(null, () => { self = (LuaTable)lua_Svr.start("ChatRoomClient.lua"); }); } // Use this for initialization void Start () { DontDestroyOnLoad(gameObject); } // Update is called once per frame void Update () { }}
lua文件
import "UnityEngine" if not UnityEngine.GameObject then error("Click Make/All to generate lua wrap file") end function main( ... ) -- body print("Start ConnectServer"); local ca = GameObject.Find("Main Camera"); local cs = ca:GetComponent("ChatRoom"); cs:Connect(); print("Success Server"); local sendBut = GameObject.Find("Canvas/Send"); local btn = sendBut:GetComponent("Button") if not sendBut then error("sendBut is nil"); end btn.onClick:AddListener(function () -- body print("Button"); local msg = GameObject.Find("Canvas/Msg/Text"); local mtext = msg:GetComponent("Text"); cs:OnClickMsgSendButEvent(mtext.text); local text1 = GameObject.Find("Canvas/Image/Text"); local textt = text1:GetComponent("Text"); textt.text = mtext; end); end
阅读全文
0 0
- Unity中使用 slua --- 调用c#方法
- Unity SLua 如何调用Unity中C#方法
- Unity中使用SLua的一些注意事项
- [Unity][LUA][SLUA]选择LUA库导入Unity中
- [Unity]使用Slua框架开发创建Unity引擎中的对象
- Unity SLua+FairyGUI
- Unity中SLua、Tolua、XLua和ILRuntime效率评测
- 使用Slua框架开发Unity项目的重要步骤
- unity中C#调用C++
- SLua 绑定 Protobuf-Lua (protoc-gen-lua) 在SLua中使用 Protobuf
- Unity-Android通信:AndroidJava 使用Unity c#编写Android程序调用任何方法
- 【Unity】Unity中使用C#脚本调用JS脚本的使用方法
- 关于unity中C#使用WaitForSeconds的方法
- Unity 3D: c#中字符串截取使用的方法
- C# 中调用方法
- unity 中使用C#6.0
- unity中c#与java相互调用
- Unity C# 使用反射,利用字符串作为泛型参数调用泛型方法。
- Arcgis engine 将两个Geometry对象合并为一个新的Geometry对象,其中GeometryA的值会被修改
- Android 屏幕适配:最全面的解决方案
- 2017(一)linux基础命令
- Scala 学习笔记(四)------定义递归函数
- PS 中的7种投影技
- Unity中使用 slua --- 调用c#方法
- FFmpeg再学习 -- FFmpeg解码知识
- libco协程学习
- I
- iOS开发之自定义键盘(数字,字母类型等随意切换)
- angular.js之常见的服务(service)篇
- 前端在线编程题3
- 对make和Makefile的理解
- Find The Multiple