public void Init(ScriptableData.ISyntaxComponent config) { ScriptableData.CallData callData = config as ScriptableData.CallData; if (null != callData) { Load(callData); } else { ScriptableData.FunctionData funcData = config as ScriptableData.FunctionData; if (null != funcData) { Load(funcData); } else { ScriptableData.StatementData statementData = config as ScriptableData.StatementData; if (null != statementData) { Load(statementData); } else { //error } } } }
/// <summary> /// 初始化剧情命令 /// </summary> /// <param name="config"></param> public void Init(ScriptableData.ISyntaxComponent config) { ScriptableData.CallData callData = config as ScriptableData.CallData; if (callData != null) { Load(callData); } else { ScriptableData.FunctionData funcData = config as ScriptableData.FunctionData; if (funcData != null) { Load(funcData); } else { ScriptableData.StatementData stateData = config as ScriptableData.StatementData; if (stateData != null) { Load(stateData); } else { Debug.LogError("剧情命令不能解析"); } } } }
protected override void Load(ScriptableData.StatementData statementData) { Load(statementData.First); ScriptableData.FunctionData functionData = statementData.Second; if (null != functionData && functionData.GetId() == "else") { for (int i = 0; i < functionData.Statements.Count; i++) { ICommand cmd = CommandManager.Instance.CreateCommand(functionData.Statements[i]); if (null != cmd) { m_LoadedElseCommands.Add(cmd); } } /* * foreach (ScriptableData.ISyntaxComponent statement in functionData.Statements) { * ICommand cmd = StoryCommandManager.Instance.CreateCommand(statement); * if (null != cmd) * m_LoadedElseCommands.Add(cmd); * }*/ } }
protected virtual void Load(ScriptableData.StatementData statementData) { }