public void ChangeState(BEHAVIOR_STATE state) { if (_curState != BEHAVIOR_STATE.ST_NONE) { _dictStates[_curState].onExit(); } if (_dictStates.ContainsKey(state)) { _dictStates[state].onEnter(); _curState = state; } }
public void UpdateState() { if (_nextState != BEHAVIOR_STATE.ST_NONE && _dictStates.ContainsKey(_nextState)) { ChangeState(_nextState); _nextState = BEHAVIOR_STATE.ST_NONE; } if (_curState != BEHAVIOR_STATE.ST_NONE && _dictStates.ContainsKey(_curState)) { _dictStates[_curState].onUpdate(); _nextState = _dictStates[_curState].getNextState(); } }
public void AddState(BEHAVIOR_STATE state) { BehaviorState behaviorState = null; switch (state) { case BEHAVIOR_STATE.ST_NONE: break; case BEHAVIOR_STATE.ST_IDLE: behaviorState = new BehaviorState_Idle(); break; case BEHAVIOR_STATE.ST_ATTACK: behaviorState = new BehaviorState_Attack(); break; case BEHAVIOR_STATE.ST_FIND: behaviorState = new BehaviorState_Find(); break; case BEHAVIOR_STATE.ST_TRACE: behaviorState = new BehaviorState_Trace(); break; case BEHAVIOR_STATE.END: break; default: break; } if (behaviorState != null) { behaviorState.SetOwner(_owner); behaviorState.SetAnimator(_animController); behaviorState.SetBehavior(this); _dictStates.Add(state, behaviorState); } }
public void SetState(STATE state) { if (state == curState) { return; } curState = state; _agent.enabled = true; _agent.angularSpeed = 1000; RestAnimator(); //transform.parent = null; switch (curState) { case STATE.IDLE: lastBehaviorState = BEHAVIOR_STATE.IDLE; _agent.enabled = false; _anim.SetBool("isIdleBool", true); break; case STATE.WALK: lastBehaviorState = BEHAVIOR_STATE.RUN; _agent.speed = _walkSpeed; _anim.SetBool("isWalkBool", true); break; case STATE.RUN: lastBehaviorState = BEHAVIOR_STATE.RUN; _agent.speed = _runSpeed; _anim.SetBool("isRunBool", true); break; case STATE.JUMP: _agent.enabled = false; _anim.SetBool("isJumpBool", true); break; case STATE.PATROL: lastBehaviorState = BEHAVIOR_STATE.WALK; _agent.speed = _walkSpeed; _anim.SetBool("isWalkBool", true); break; case STATE.CREEP: _agent.speed = 1f; _anim.SetBool("isCreepBool", true); break; case STATE.CREEP_IDLE: _agent.enabled = false; _anim.SetBool("isCreepBool", true); break; case STATE.CROSS_JUMP: _agent.enabled = false; _anim.SetBool("isCrossJumpBool", true); break; case STATE.LOOK_BACK: lastBehaviorState = BEHAVIOR_STATE.IDLE; _agent.enabled = false; _anim.SetBool("isLookBackBool", true); break; case STATE.LOOK_AROUND: lastBehaviorState = BEHAVIOR_STATE.IDLE; _agent.enabled = false; _anim.SetBool("isLookAroundBool", true); break; case STATE.OBSERVE: lastBehaviorState = BEHAVIOR_STATE.WALK; _agent.speed = _walkSpeed; _anim.SetBool("isWalkBool", true); break; case STATE.SMELL: lastBehaviorState = BEHAVIOR_STATE.IDLE; _agent.enabled = false; _anim.SetBool("isSmellBool", true); break; //=============================空手 case STATE.BITE: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isBiteTrigger"); break; case STATE.JUMP_BITE: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isJumpBiteTrigger"); break; case STATE.CREEP_GRAB: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isCreepGrabTrigger"); break; case STATE.CREEP_GRAB_FORCE: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isCreepGrabForceTrigger"); break; case STATE.GRAB: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isGrabTrigger"); break; case STATE.GRAB_FAST: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isGrabFastTrigger"); break; case STATE.WRESTLING: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isWrestlingTrigger"); break; case STATE.ARM1: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isArm1Trigger"); break; case STATE.ARM2: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isArm2Trigger"); break; case STATE.ARM3: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isArm3Trigger"); break; case STATE.ARM4: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isArm4Trigger"); break; case STATE.ARM5: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isArm5Trigger"); break; case STATE.ARM6: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isArm6Trigger"); break; case STATE.ARM7: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isArm7Trigger"); break; //=============================拿刀 case STATE.KNIFE1: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isKnife1Trigger"); break; case STATE.KNIFE2: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isKnife2Trigger"); break; case STATE.KNIFE3: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isKnife3Trigger"); break; case STATE.KNIFE4: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isKnife4Trigger"); break; case STATE.KNIFE5: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetTrigger("isKnife5Trigger"); break; //=============================锤子 case STATE.HAMMER1: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer1Bool", true); break; case STATE.HAMMER2: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer2Bool", true); break; case STATE.HAMMER3: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer3Bool", true); break; case STATE.HAMMER4: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer4Bool", true); break; case STATE.HAMMER5: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer5Bool", true); break; case STATE.HAMMER6: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer6Bool", true); break; case STATE.HAMMER7: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer7Bool", true); break; case STATE.HAMMER8: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer8Bool", true); break; case STATE.HAMMER9: lastBehaviorState = BEHAVIOR_STATE.SKILL; _agent.enabled = false; _anim.SetBool("isHammer9Bool", true); break; case STATE.BEATEN_WALK_SPASTICITY: _agent.speed = 1f; _agent.angularSpeed = 0; _anim.SetTrigger("isBeatenWalkSpasticityTrigger"); break; case STATE.BEATEN_RUN_SPASTICITY: _agent.speed = 1f; _agent.angularSpeed = 0; _anim.SetTrigger("isBeatenRunSpasticityTrigger"); break; case STATE.BEATEN_ATTACK_SPASTICITY: _agent.speed = 1f; _agent.angularSpeed = 0; _anim.SetTrigger("isBeatenAttackSpasticityTrigger"); break; case STATE.BEATEN_LEFT: _agent.enabled = false; _anim.SetTrigger("isBeatenLeftTrigger"); break; case STATE.BENTEN_RIGHT: _agent.enabled = false; _anim.SetTrigger("isBeatenRightTrigger"); break; case STATE.PLAY_DEAD: _agent.enabled = false; _anim.SetTrigger("isPlayDeadTrigger"); break; case STATE.DEATH: _agent.enabled = false; if (zmbType == ZMB_TYPE.GENERAL) { _anim.SetTrigger("isDeath1Front"); } else { _anim.SetTrigger("isDeathTrigger"); } //_anim.SetTrigger("isDeath1BackATrigger"); break; } }
public bool IsContainState(BEHAVIOR_STATE state) { return(_dictStates.ContainsKey(state)); }