public void Initialize(RoomInstance room, JRoomContentConfig contentConfig, string param) { this.room = room; isInitialize = false; isLoadingBath = false; this.room = room; this.contentConfig = contentConfig; curBatch = -1; OnInitialize(room, contentConfig); }
/// <summary> /// 初始化RoomContent /// </summary> JRoomContentConfig InitializeContentConfig(string name) { name = name.ToLower(); JRoomContentConfig config = null; if (m_SourceConfigs.TryGetValue(name, out config)) { //已初始化后,可以在SourceConfigs里删除了 m_SourceConfigs.Remove(name); JRoomContentConfig parent = GetContentConfig(config.parent); if (parent != null) { config.InheritFromParent(parent); } m_InitializedContentConfigs.Add(config.name, config); return(config); } return(null); }
/// <summary> /// 获取RoomContent /// </summary> /// <param name="name"></param> /// <returns></returns> public JRoomContentConfig GetContentConfig(string name) { if (name == null || name == "") { return(null); } JRoomContentConfig config = null; if (m_InitializedContentConfigs.TryGetValue(name.ToLower(), out config)) { return(config); } config = InitializeContentConfig(name); if (config == null) { Debug.LogError("找不到RoomContent " + name); return(null); } else { return(config); } }
/// <summary> /// 从父配置里继承数据 /// </summary> /// <param name="parent"></param> public void InheritFromParent(JRoomContentConfig parent) { if (script == null || script == "") { script = parent.script; } if (param == null || param == "") { param = parent.param; } if (model == null || model == "") { model = parent.model; } if (contents == null && parent.contents != null) { contents = new Dictionary <int, JBatchContent>(); var e = parent.contents.GetEnumerator(); while (e.MoveNext()) { contents.Add(e.Current.Key, new JBatchContent(e.Current.Value)); } } }
public static RoomScriptBase Create(RoomInstance room, JRoomContentConfig contentConfig, string scriptName, string scriptParam) { if (scriptName == "null" || scriptName == null) { DefaultRoomScript script = new DefaultRoomScript(); script.Initialize(room, contentConfig, scriptParam); return(script); } else { try { Type type = Type.GetType(scriptName); RoomScriptBase script = Activator.CreateInstance(type) as RoomScriptBase; script.Initialize(room, contentConfig, scriptParam); return(script); } catch (Exception e) { Debug.LogError("创建房间脚本" + scriptName + "失败!\n" + e.Message); return(null); } } }
protected virtual void OnInitialize(RoomInstance room, JRoomContentConfig contentConfig) { }