public InnocentStateMachine(AiInnocent innocent) { this.ino = innocent; int numStates = System.Enum.GetNames(typeof(AiStateId)).Length; states = new InnocentState[numStates]; }
public void Enter(AiInnocent innocent) { innocent.ragdollController.ActivateRagdoll(); Direction.y = 0.5f; innocent.ragdollController.ApplyForce(Direction * ForceFromWep); // innocent.health.gameObject.SetActive(false); innocent.navMeshAgent.enabled = false; }
Vector3 GenerateRandomDestination(AiInnocent innocent) { Vector3 randomDirection = Random.insideUnitSphere * 25; randomDirection += innocent.transform.position; NavMeshHit hit; NavMesh.SamplePosition(randomDirection, out hit, 25, NavMesh.AllAreas); Vector3 destination = hit.position; return(destination); }
public void Update(AiInnocent innocent) { if (!innocent.navMeshAgent.hasPath) { innocent.navMeshAgent.destination = GenerateRandomDestination(innocent); } if ((innocent.transform.position - innocent.navMeshAgent.destination).magnitude < 2f) { innocent.navMeshAgent.destination = GenerateRandomDestination(innocent); } }
// Update is called once per frame void Update() { if (!playerWeapon.weapon.isFiring) { return; } Collider[] hits = (Physics.OverlapBox(transform.position, new Vector3(boxSize, 1.5f, boxSize), transform.rotation)); foreach (var hit in hits) { AiAgent agent = hit.GetComponent <AiAgent>(); AiInnocent inno = hit.GetComponent <AiInnocent>(); if (agent && agent.stateMachine.currentState != AiStateId.AttackPlayer) { agent.stateMachine.ChangeState(AiStateId.AttackPlayer); } if (inno && inno.stateMachine.currentState != InnocentStateId.Run) { inno.stateMachine.ChangeState(InnocentStateId.Run); } } }
public void Exit(AiInnocent innocent) { }
public void Enter(AiInnocent innocent) { innocent.locomotion.anim.SetTrigger("Run1"); innocent.navMeshAgent.destination = GenerateRandomDestination(innocent); }
public override void OnStart() { _innocent = GetComponent <AiInnocent>(); }
public void Update(AiInnocent innocent) { innocent.locomotion.GenerateAnimation(); }
public void Enter(AiInnocent innocent) { innocent.locomotion.DelayedRandomAnimation(); }
public void Update(AiInnocent innocent) { }