示例#1
0
    public void OnDestroy()
    {
        _fileName = string.Empty;
        EditorPrefs.DeleteKey("HsmFile");

        hSMChangeSelectId            -= ChangeSelectId;
        hSMAddState                  -= AddNode;
        hSMDeleteNode                -= DeleteNode;
        hSMSetDefaultState           -= SetDefaultState;
        hSMLoadFile                  -= LoadFile;
        hSMSaveFile                  -= SaveFile;
        hSMDeleteFile                -= DeleteFile;
        hSMNodeChangeTransition      -= NodeChangeTransition;
        hSMNodeAddDelParameter       -= NodeAddDelParameter;
        hSMNodeTransitionAddDelGroup -= NodeTransitionAddDelGroup;
        parameterChange              -= ParameterChange;
        hSMNodeChangeParameter       -= NodeChangeParameter;
        hSMRuntimePlay               -= RuntimePlay;
        hSMChangeSelectTransitionId  += ChangeSelectTransition;
        hsmOpenSubMachine            -= OpenSubMachine;

        _playState = HSMPlayType.STOP;

        AssetDatabase.Refresh();
        UnityEngine.Caching.ClearCache();
    }
示例#2
0
    private void LoadFile(string fileName)
    {
        string path = GetFilePath(fileName);

        if (!File.Exists(path))
        {
            if (!EditorUtility.DisplayDialog("提示", "文件不存在", "yes"))
            {
            }
            return;
        }

        _playState = HSMPlayType.STOP;
        NodeNotify.SetPlayState((int)_playState);

        HSMReadWrite readWrite = new HSMReadWrite();
        SkillHsmConfigHSMTreeData HSMTreeData = readWrite.ReadJson(path);

        if (null == HSMTreeData)
        {
            Debug.LogError("file is null:" + fileName);
            return;
        }

        _fileName                = fileName;
        _HSMTreeData             = HSMTreeData;
        _currentOpenSubMachineId = -1;

        HSMRunTime.Instance.Reset(HSMTreeData);
    }
示例#3
0
 private void RuntimePlay(HSMPlayType state)
 {
     if (state == HSMPlayType.PLAY && null != HSMRunTime.Instance.ConditionCheck)
     {
         List <SkillHsmConfigHSMParameter> parameterList = HSMRunTime.Instance.ConditionCheck.GetAllParameter();
         _runtimeParameterModel.AddParameter(parameterList);
     }
 }
示例#4
0
 private void RuntimePlay(HSMPlayType state)
 {
     if (state == HSMPlayType.PLAY || state == HSMPlayType.STOP)
     {
         if (null != _hsmStateMachine)
         {
             _hsmStateMachine.Clear();
         }
     }
 }
示例#5
0
    public void Init()
    {
        CreateData();

        hSMChangeSelectId            += ChangeSelectId;
        hSMAddState                  += AddNode;
        hSMDeleteNode                += DeleteNode;
        hSMSetDefaultState           += SetDefaultState;
        hSMLoadFile                  += LoadFile;
        hSMSaveFile                  += SaveFile;
        hSMDeleteFile                += DeleteFile;
        hSMNodeChangeTransition      += NodeChangeTransition;
        hSMNodeAddDelParameter       += NodeAddDelParameter;
        hSMNodeTransitionAddDelGroup += NodeTransitionAddDelGroup;
        parameterChange              += ParameterChange;
        hSMNodeChangeParameter       += NodeChangeParameter;
        hSMRuntimePlay               += RuntimePlay;
        hSMChangeSelectTransitionId  += ChangeSelectTransition;
        hsmOpenSubMachine            += OpenSubMachine;

        _playState = HSMPlayType.STOP;
    }
示例#6
0
 private void RuntimePlay(HSMPlayType state)
 {
     NodeNotify.SetPlayState((int)state);
     _playState = state;
 }