Exemple #1
0
        public void Shoot()
        {
            AkSoundEngine.PostEvent("hunter_rifle", gameObject);
            Vector3    position  = agent.transform.position;
            Vector3    direction = agent.transform.forward;
            RaycastHit hit;

            if (Physics.Raycast(position, direction, out hit, shootingRange, shootingMask))
            {
                Debug.Log(hit.collider.gameObject);
                AIAgent agent = hit.collider.gameObject.GetComponent <AIAgent>();
                if (agent != null)
                {
                    agent.Kill();
                }
                else
                {
                    Cannibal cannibal = hit.collider.gameObject.GetComponentInParent <Cannibal>();
                    if (cannibal != null)
                    {
                        cannibal.Kill();
                    }
                    else
                    {
                        Bush bush = hit.collider.gameObject.GetComponent <Bush>();
                        if (bush != null)
                        {
                            Debug.Log("Killing cannibals in bush:" + bush);
                            bush.KillACannibal();
                        }
                    }
                }
            }
        }
Exemple #2
0
        protected override void OnExecute()
        {
            GameObject t         = target.value;
            Vector3    planarDir = (t.transform.position - agent.transform.position);

            planarDir.y = 0;
            planarDir   = planarDir.normalized;
            float angle = Vector3.Angle(agent.transform.forward, planarDir);

            if (Vector3.Distance(t.transform.position, agent.transform.position) < distance.value &&
                angle < Mathf.Abs(maxAngle.value))
            {
                AIAgent agent = t.GetComponent <AIAgent>();
                if (agent != null)
                {
                    agent.Kill();
                }
                else
                {
                    Cannibal cannibal = t.GetComponentInParent <Cannibal>();
                    if (cannibal != null)
                    {
                        cannibal.Kill();
                    }
                    else
                    {
                        Debug.LogError("Cible non valide");
                    }
                }
            }
            EndAction();
        }
Exemple #3
0
    protected override void OnExecute()
    {
        Vector3    position  = agent.transform.position;
        Vector3    direction = agent.transform.forward;
        RaycastHit hit;

        if (Physics.Raycast(position, direction, out hit, distance.value, mask.value))
        {
            Debug.Log(hit.collider.gameObject);
            AI.AIAgent agent = hit.collider.gameObject.GetComponent <AI.AIAgent>();
            if (agent != null)
            {
                agent.Kill();
            }
            else
            {
                Cannibal cannibal = hit.collider.gameObject.GetComponentInParent <Cannibal>();
                if (cannibal != null)
                {
                    cannibal.Kill();
                }
                else
                {
                    Bush bush = hit.collider.gameObject.GetComponent <Bush>();
                    if (bush != null)
                    {
                        bush.KillACannibal();
                    }
                }
            }
        }
        EndAction();
    }