Esempio n. 1
0
    public InnocentStateMachine(AiInnocent innocent)
    {
        this.ino = innocent;
        int numStates = System.Enum.GetNames(typeof(AiStateId)).Length;

        states = new InnocentState[numStates];
    }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
    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);
    }
Esempio n. 4
0
    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);
        }
    }
Esempio n. 5
0
    // 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);
            }
        }
    }
Esempio n. 6
0
 public void Exit(AiInnocent innocent)
 {
 }
Esempio n. 7
0
 public void Enter(AiInnocent innocent)
 {
     innocent.locomotion.anim.SetTrigger("Run1");
     innocent.navMeshAgent.destination = GenerateRandomDestination(innocent);
 }
Esempio n. 8
0
 public override void OnStart()
 {
     _innocent = GetComponent <AiInnocent>();
 }
Esempio n. 9
0
 public void Update(AiInnocent innocent)
 {
     innocent.locomotion.GenerateAnimation();
 }
Esempio n. 10
0
 public void Enter(AiInnocent innocent)
 {
     innocent.locomotion.DelayedRandomAnimation();
 }
Esempio n. 11
0
 public void Update(AiInnocent innocent)
 {
 }