using UnityEngine;
using System.Collections;
using System;
using XLua;
using System.Collections.Generic;
[Serializable]
public class MyInjection {
public string name;
public GameObject value;
}
[LuaCallCSharp]
public class LuaInjection : MonoBehaviour {
LuaTable luaTable = LuaManager._instance.luaTable;
public List<MyInjection> injections = new List<MyInjection>();
// Use this for initialization
void Awake () {
luaTable.Set("self",this);//添加自身
//GameObject loginbtn = FindUtil.FindChild("LoginBtn", transform);
//luaTable.Set("LoginBtn", loginbtn);
SetMyInjectionList(transform, ref injections);
foreach (MyInjection item in injections) {
luaTable.Set(item.name, item.value);
}
}
/// <summary>
/// 添加子物体
/// </summary>
/// <param name="go">总的父物体</param>
/// <param name="list">集合</param>
public void SetMyInjectionList(Transform go, ref List<MyInjection> list) {
//先添加自己
MyInjection goself = new MyInjection();
goself.name = go.name;
goself.value = go.gameObject;
list.Add(goself);
//遍历添加子物体
for (int i = 0; i < go.childCount; i++) {
if (go.GetChild(i).childCount == 0) {
MyInjection temp = new MyInjection();
temp.name = go.GetChild(i).name;
temp.value = go.GetChild(i).gameObject;
list.Add(temp);
} else {
SetMyInjectionList(go.GetChild(i), ref list);
}
}
}
// Update is called once per frame
void Update () {
}
}
/*
1.完整版的登录注册 lua 客户端
2.搭建登录注册 的服务器
*/
本文介绍了一个使用Unity和Lua进行集成的示例项目。通过C#脚本定义了Lua可以调用的游戏对象属性,实现了从Lua脚本中直接访问Unity GameObject的方法。此示例展示了如何初始化对象引用并将它们暴露给Lua环境。
7283

被折叠的 条评论
为什么被折叠?



