private BehaviorTreeData ReadFile(string fileName, bool warningWhenExist) { BehaviorTreeData behaviorTreeData = null; if (_configDataDic.TryGetValue(fileName, out behaviorTreeData)) { return(behaviorTreeData); } string path = GetFilePath(fileName); if (warningWhenExist && !File.Exists(path)) { if (!EditorUtility.DisplayDialog("提示", "文件不存在", "yes")) { } return(null); } BehaviorReadWrite readWrite = new BehaviorReadWrite(); behaviorTreeData = readWrite.ReadJson(path); _configDataDic[fileName] = behaviorTreeData; LoadAllSubConfig(behaviorTreeData); return(behaviorTreeData); }
private void LoadFile(string fileName) { if (string.IsNullOrEmpty(fileName)) { return; } _configDataDic.Clear(); BehaviorReadWrite readWrite = new BehaviorReadWrite(); BehaviorTreeData behaviorTreeData = ReadFile(fileName, true); if (null == behaviorTreeData) { //ProDebug.Logger.LogError("file is null:" + fileName); return; } _playState = BehaviorPlayType.STOP; NodeNotify.SetPlayState((int)_playState); _fileName = fileName; _behaviorTreeData = behaviorTreeData; _currentSelectId = -1; _currentOpenSubTreeId = -1; BehaviorRunTime.Instance.Reset(behaviorTreeData); }
public void Init() { _filePath = "Assets/Resources/Data/"; _fileName = string.Empty; _behaviorTreeData = new BehaviorTreeData(); BehaviorReadWrite readWrite = new BehaviorReadWrite(); _globalParameter = readWrite.ReadGlobalParameter(GetGlobalParameterPath()); behaviorChangeSelectId += ChangeSelectId; behaviorAddNode += AddNode; behaviorDeleteNode += DeleteNode; behaviorLoadFile += LoadFile; behaviorSaveFile += SaveFile; behaviorDeleteFile += DeleteFile; behaviorNodeAddChild += NodeAddChild; behaviorRemoveParentNode += RemoveParentNode; behaviorNodeParameter += NodeParameterChange; globalParameterChange += GlobalParameterChange; behaviorNodeChangeParameter += NodeChangeParameter; behaviorRuntimePlay += RuntimePlay; _playState = BehaviorPlayType.STOP; }
private void SaveFile(string fileName) { if (_behaviorTreeData == null) { Debug.LogError("rootNode is null"); return; } string path = GetFilePath(fileName); if (File.Exists(path)) { if (!EditorUtility.DisplayDialog("已存在文件", "是否替换新文件", "替换", "取消")) { return; } } // 如果项目总不包含该路径,创建一个 string directory = Path.GetDirectoryName(path); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } BehaviorReadWrite readWrite = new BehaviorReadWrite(); readWrite.WriteJson(_behaviorTreeData, path); }
private void LoadFile(string fileName) { string path = GetFilePath(fileName); if (!File.Exists(path)) { if (!EditorUtility.DisplayDialog("提示", "文件不存在", "yes")) { } return; } _playState = BehaviorPlayType.STOP; BehaviorReadWrite readWrite = new BehaviorReadWrite(); BehaviorTreeData behaviorTreeData = readWrite.ReadJson(path); if (null == behaviorTreeData) { Debug.LogError("file is null:" + fileName); return; } _fileName = fileName; _behaviorTreeData = behaviorTreeData; }
private void SaveFile(string fileName, BehaviorTreeData data) { if (data == null) { //ProDebug.Logger.LogError("rootNode is null"); return; } if (string.IsNullOrEmpty(fileName)) { if (EditorUtility.DisplayDialog("警告", "文件名不能为空", "确定")) { return; } } if (fileName.Length > 30) { if (EditorUtility.DisplayDialog("警告", "文件名过长,不能大于20个字符", "确定")) { return; } } string path = GetFilePath(fileName); if (File.Exists(path)) { if (!EditorUtility.DisplayDialog("已存在文件", "是否替换新文件", "替换", "取消")) { return; } } // 如果项目总不包含该路径,创建一个 string directory = Path.GetDirectoryName(path); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } data.nodeDic.Clear(); StandardID(data); data.fileName = fileName; BehaviorReadWrite readWrite = new BehaviorReadWrite(); readWrite.WriteJson(data, path); }
private void GlobalParameterChange(BehaviorParameter parameter, bool isAdd) { if (isAdd) { AddParameter(_globalParameter.parameterList, parameter); } else { DelParameter(_globalParameter.parameterList, parameter); } BehaviorReadWrite readWrite = new BehaviorReadWrite(); readWrite.WriteGlobalParameter(_globalParameter, GetGlobalParameterPath()); }