public ScriptableObjectBase LoadTable(string fileName) { ScriptableObjectBase scriptable = null; #if UNITY_EDITOR // 导表时就走下面流程 if (!Application.isPlaying || ClientDataBaseManager.SimulateTableAssetInEditor) { scriptable = CreateScriptableInstance(fileName); if (scriptable == null) { Debug.LogError(string.Format("#TableCheck# 表[{0}]没有对应的脚本,请重新导表!!", fileName)); return(null); } scriptable.LoadGameTable(false); return(scriptable); } #endif #if NO_UPDATE scriptable = Utility.AssetRelate.ResourcesLoadCheckNull <ScriptableObjectBase>(c_pathScriptableAssetRoot + m_config.GetScriptableAssetName(fileName)); #else //scriptable = (ScriptableObjectBase)RM.Instance.GetResource(c_pathScriptableAssetRoot + m_config.GetScriptableAssetName(fileName,true)); #endif return(scriptable); }
/// <summary> /// 建立 Scriptable Asset /// </summary> /// <returns>是否成功建立</returns> public bool CreateScriptableAssets(string scriptableScriptName, string scriptableAssetName) { m_config = ClientDataBaseManager.Instance.Config; MonoScript script = AssetDatabase.LoadAssetAtPath <MonoScript>(m_config.GetScriptableScriptsPath() + scriptableScriptName); if (script == null || script.GetClass() == null) { Debug.LogError(string.Format("Scriptable Script is Null. [Path:{0}]", m_config.GetScriptableScriptsPath() + scriptableScriptName)); return(false); } string path = m_config.GetScriptableAssetPath() + scriptableAssetName; ScriptableObjectBase scriptableObjectBase = AssetDatabase.LoadAssetAtPath <ScriptableObjectBase>(path); if (scriptableObjectBase == null) { UtilityEditor.CreateFolder(m_config.GetScriptableAssetPath()); scriptableObjectBase = ScriptableObject.CreateInstance(script.GetClass()) as ScriptableObjectBase; AssetDatabase.CreateAsset(scriptableObjectBase, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(ImportAssetOptions.ForceSynchronousImport); } Debug.Log(string.Format("[Scriptable Asset] is Create.\nFile:[{0}] Path:[{1}]", scriptableAssetName, m_config.GetScriptableAssetPath())); return(scriptableObjectBase.LoadGameTable()); }
void UpdateAsset() { foreach (Object go in m_objList) { ScriptableObjectBase script = (ScriptableObjectBase)go; if (script.LoadGameTable() == false) { continue; } } m_startCreate = false; }