private void RegistState(AbstractNode node) { if (typeof(SkillPhaseState).IsAssignableFrom(node.GetType())) { SkillPhaseState skillPhaseState = (SkillPhaseState)node; skillPhaseState.SetSkill(_skill); AbstractNode parentNode = _hsmStateMachine.GetNode(node.ParentId); int configIndex = (null != parentNode) ? ((SubMachineSkill)parentNode).SkillConfigIndex : -1; int nodeUid = NodeUid(configIndex, skillPhaseState.PhaseType); _stateDic[nodeUid] = skillPhaseState; } else if (typeof(SkillHoldSkillState).IsAssignableFrom(node.GetType())) { SkillHoldSkillState skillHoldSkillState = (SkillHoldSkillState)node; skillHoldSkillState.SetSkill(_skill); } else if (typeof(SkillHoldFishState).IsAssignableFrom(node.GetType())) { SkillHoldFishState skillHoldFishState = (SkillHoldFishState)node; skillHoldFishState.SetSkill(_skill); } else if (typeof(SkillNextStage).IsAssignableFrom(node.GetType())) { SkillNextStage skillNextStage = (SkillNextStage)node; skillNextStage.SetEnterCallBack(EnterNextStage); } else if (typeof(SkillExitState).IsAssignableFrom(node.GetType())) { SkillExitState skillExitState = (SkillExitState)node; skillExitState.SetEnterCallBack(EixtSkill); } }