Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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;
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    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;
    }
Esempio n. 6
0
    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);
    }
Esempio n. 7
0
    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());
    }