public FollowingTarget(Fsm fsm, AudioClip tryingToOpenDoorSound, Func <float> brokeDoorPercentage, float waitWhenWaking) : base(fsm) { this.tryingToOpenDoorSound = tryingToOpenDoorSound; this.brokeDoorPercentage = brokeDoorPercentage; this.waitWhenWaking = waitWhenWaking; enemyFsm = fsm as EnemyFsm; }
void Awake() { var volume = FindObjectOfType <Volume>(); volume.profile.TryGet(out shadowsMidtonesHighlights); shadowsMidtonesHighlights.active = false; mover = GetComponent <Mover>(); fsm = GetComponent <EnemyFsm>(); inventary = player.GetComponent <CharacterInventary>(); animator = GetComponentInChildren <Animator>(); }
void Start() { animator = GetComponent <Animator>(); _FSM = new EnemyFsm(this); _FSM.SetState(new EnemyIdle(_FSM)); meshAgent = transform.parent.GetComponent <NavMeshAgent>(); lifeValue = maxLifeValue; StartCoroutine(ReduceLifeImage()); lifeRedImage.fillAmount = 1; lifeYellowImage.fillAmount = 1; }
public EnemyFsm(GameObject spawnParent) : base() { onlyInstance = this; DebugLog("Spawning enemy : " + this.GetType()); enemyParent = GameObject.Find("EnemyParent"); damage = 5f; this.spawnParent = spawnParent; Start(); SwapState(new InitState(this)); }
public EnemyRun(EnemyFsm FSM) { this.FSM = FSM; FSM.enemy.animator.SetInteger("State", 3); // 生成器的中心与半径range的计算得到在此范围内的随机坐标 Vector3 temp = new Vector3 ( UnityEngine.Random.Range(FSM.enemy.monsterCreatorCenter.x - FSM.enemy.range.x, FSM.enemy.monsterCreatorCenter.x + FSM.enemy.range.x), FSM.enemy.monsterCreatorCenter.y, UnityEngine.Random.Range(FSM.enemy.monsterCreatorCenter.z - FSM.enemy.range.z, FSM.enemy.monsterCreatorCenter.z + FSM.enemy.range.z) ); Ray ray = new Ray(temp, Vector3.down); if (Physics.Raycast(ray, out RaycastHit hit, LayerMask.GetMask("Map"))) { FSM.enemy.meshAgent.SetDestination(hit.point); target = hit.point; }
public EnemyIdle(EnemyFsm enemyFsm) { FSM = enemyFsm; FSM.enemy.animator.SetInteger("State", 0); timer = UnityEngine.Random.Range(2, 8); }
public EnemyGetHit(EnemyFsm enemyFsm) { FSM = enemyFsm; FSM.enemy.animator.SetInteger("State", 4); enemyFsm.enemy.AddAnimationEvent("EndPlayGetHitAnimation", "GetHit"); }
public void RemoveFromList(EnemyFsm enemy) { activeSpawns.Remove(enemy); }
public InitState(EnemyFsm parent) : base(parent) { this.parent = parent; }
public DeadState(EnemyFsm parent) : base(parent) { this.parent = parent; }
public void SetEnemy(EnemyFsm enemy) { this.enemy = enemy; }
protected override void Start() { // Add States here. EnemyFsm.AddToStateList((int)ESimpleStates.PATROL, new ESimplePatrol()); }