//直接资源文件夹获取 public LuaTable LoadScriptBehaviourFromStartup(string resourcePath) { //UnityEngine.Object resourceObject = ResourceLoader.LoadFromResources(resourcePath); //GameObject gameObject = GameObject.Instantiate(resourceObject) as GameObject; //ScriptBehaviour behaviour = GameObjectUtility.GetIfNotAdd<ScriptBehaviour>(gameObject); ScriptBehaviour behaviour = LoadScriptBehaviourFromStartup <ScriptBehaviour>(resourcePath); return(behaviour.LuaTable); }
//用来给LUA绑定, 直接返回table public LuaTable WrapperWindowControl(GameObject gameObject, string scriptName = null) { if (gameObject == null) { FastLuaUtility.Traceback(); } ScriptBehaviour windowControl = WrapperScriptBehaviour <ScriptBehaviour>(gameObject, null, scriptName); return(windowControl.LuaTable); }
//装载资源并加载脚本 public LuaTable LoadScriptBehaviourFromResource(string resourceName) { ScriptBehaviour scriptBehaviour = LoadScriptBehaviourFromResource <ScriptBehaviour>(resourceName); LuaTable scriptLua = scriptBehaviour.LuaTable; if (scriptLua == null) { Debug.LogError("resource error : " + resourceName); FastLuaUtility.Traceback(); } return(scriptLua); }
/// <summary> /// 供宿主程序创建面板后调用的回调 /// </summary> /// <param name="rGo">回传的面板对象</param> protected virtual void OnCreated(GameObject rGo) { WaitingLayer.Hide(); gameObject = rGo; transform = rGo.GetComponent <Transform>(); behaviour = rGo.GetComponent <ScriptBehaviour>(); var rPanel = Global.PanelManager.PanelCurrent; if (gameObject.name.Contains(rPanel.PanelName)) { rPanel.IsCreated = true; Debug.Log("[script match complete]:" + gameObject.name); } else { Debug.Log("[script match failed]:" + gameObject.name); } }