Ejemplo n.º 1
0
    public void DetectTarget(IATarget target)
    {
        Vector3 dir = target.position - trsf.position;

        if (Vector3.Angle(trsf.forward, dir) < data.halfFOV)
        {
            RaycastHit hit;
            if (Physics.Raycast(trsf.position, dir, out hit, data.range, data.layer.value))
            {
                if (hit.collider.gameObject.transform == iaBase.target.parent)
                {
                    detected = true;
                }
                else
                {
                    detected = false;
                }
            }
            else
            {
                detected = false;
            }
        }
        else
        {
            detected = false;
        }
    }
Ejemplo n.º 2
0
    public void SetUpIA()
    {
        renderers = GetComponentsInChildren <Renderer>();

        players = GameManager.instance.players;
        trsf    = transform;
        trsf.SetParent(GameManager.instance.mobsGroup);

        eyes = GetComponentsInChildren <IAEye>();
        if (eyes.Length == 0)
        {
            blind = true;
        }
        else
        {
            blind = false;
            for (int i = 0; i < eyes.Length; i++)
            {
                eyes[i].iaBase = this;
                eyes[i].SetUpIA();
            }
        }
        iaMovement = GetComponentInChildren <IAMovement>();
        iaMovement.navMeshAgent = GetComponent <NavMeshAgent>();
        iaMovement.SetUpIA();
        iaBody = GetComponentInChildren <IABody>();
        iaBody.orientationSpeed = iaMovement.data.orientationSpeed;
        iaBody.SetUpIA();
        iaWeapons = GetComponentsInChildren <IAWeapon>();
        for (int i = 0; i < iaWeapons.Length; i++)
        {
            iaWeapons[i].SetUpIA();
        }

        rgdBody    = GetComponent <Rigidbody>();
        damageable = GetComponentInChildren <Damageable>();
        damageable.maxLifePoint = data.maxLifePoint;

        moveSoundSource      = GetComponent <AudioSource>();
        collectableGenerator = GetComponent <CollectableGenerator>();
        target        = players[0].iaTarget;
        iaBody.target = target;

        SetUpPools();

        setuped = true;
        StartCoroutine(SpawnCoroutine());
    }