public static void Append(GameObject obj, string script, params object [] param) { LuaBehaviour lb = obj.AddComponent <LuaBehaviour>(); lb.luaScriptFileName = script; lb.args = param; }
// Use this for initialization void Start() { GameObject battleObject = GameObject.FindWithTag("battle_root"); if (battleObject != null) { battleScript = battleObject.GetComponent <LuaBehaviour>(); StartCoroutine(ToggleBattleEvent()); } }
LuaTable loadLuaBehaviour(string luaScriptFileName, params object[] args) { LuaBehaviour[] lbs = GetComponents <LuaBehaviour>(); for (int i = 0; i < lbs.Length; i++) { if (lbs[i].luaScriptFileName == luaScriptFileName) { return(lbs[i].GetScript()); //return lbs[i].LoadScript(luaScriptFileName, null, args); } } LuaBehaviour lb = gameObject.AddComponent <LuaBehaviour> (); return(lb.LoadScript(luaScriptFileName, null, args)); }
public static void MapSceneAddLua() { string[] assets = AssetDatabase.FindAssets("t:scene", new string[] { "Assets/scenes/maps" }); //string[] assets = AssetDatabase.FindAssets("t:prefab", new string[] { "Assets/assetbundle/prefabs/base" }); Debug.LogError("scene :" + assets.Length); bool temp = true; if (temp) { for (int i = 0; i <= assets.Length; i++) { string fileName = AssetDatabase.GUIDToAssetPath(assets[i]); // Debug.LogError(i + fileName); EditorSceneManager.OpenScene(fileName); GameObject MapSceneRoot = GameObject.Find("MapSceneRoot"); if (MapSceneRoot) { //obj.AddComponent<BoxCollider>(); SGK.LuaBehaviour LuaBehaviour = MapSceneRoot.GetComponent <SGK.LuaBehaviour>(); if (LuaBehaviour || LuaBehaviour.luaScriptFileName == "") { //MapSceneRoot.AddComponent<SGK.LuaBehaviour>().luaScriptFileName = "view/map_scene.lua"; //EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene()); } else { Debug.LogError(fileName); } } else { Debug.LogError(fileName + " => not MapSceneRoot"); } } } else { //AssetDatabase.SaveAssets(); EditorSceneManager.OpenScene("Assets/scenes/maps/cemetery_scene.unity"); GameObject a = GameObject.Find("MapSceneRoot"); a.AddComponent <BoxCollider>(); a.AddComponent <SGK.LuaBehaviour>().luaScriptFileName = "view/map_scene.lua"; EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene()); } }
void Awake() { var p = Application.backgroundLoadingPriority; Application.backgroundLoadingPriority = ThreadPriority.High; if (instance != null) { DestroyImmediate(gameObject); return; } instance = this; DontDestroyOnLoad(this.gameObject); L = new LuaEnv(); L.AddLoader(FileUtils.Load); LuaBehaviour.CleanStatlessFile(); L.Global.Set <string, XLua.LuaDLL.lua_CSFunction>("WARNING_LOG", CustomSettings.PrintWarning); L.Global.Set <string, XLua.LuaDLL.lua_CSFunction>("ERROR_LOG", CustomSettings.PrintError); L.Global.Set <string, XLua.LuaDLL.lua_CSFunction>("BATTLE_LOG", CustomSettings.BATTLE_LOG); L.Global.Set <string, XLua.LuaDLL.lua_CSFunction> ("loadstring", CustomSettings.LoadString); IService[] services = gameObject.GetComponents <IService>(); for (int i = 0; i < services.Length; i++) { services[i].Register(L); } //L.DoString("require('LuaDebug')('localhost',7003)"); L.DoString("require 'utils.init'"); _RegisterEventListener = L.Global.Get <System.Action <object> >("RegisterEventListener"); _RemoveEventListener = L.Global.Get <System.Action <object> >("RemoveEventListener"); _DispatchEvent = L.Global.Get <DispatchEventDelegate>("DispatchEvent"); _StartLuaCoroutineDelegate = L.Global.Get <StartLuaCoroutineDelegate>("StartCoroutine"); _Sync = L.Global.Get <SyncDelegate>("Sync"); }