Exemple #1
0
    //Target Finding
    public void OnTriggerStay(Collider other)
    {
        if (other.transform.parent.transform == PlayerManager.instance.player.transform)
        {
            Vector3 direction = other.transform.position - transform.position;
            float   angle     = Vector3.Angle(direction, transform.forward);

            if (angle < fieldOfViewAngle * 0.5f)
            {
                RaycastHit hitInfo;
                if (Physics.Raycast(transform.position + transform.up, direction.normalized, out hitInfo, curLookRadius))
                {
                    if (hitInfo.collider.gameObject.transform.parent.transform == PlayerManager.instance.player.gameObject.transform)
                    {
                        target = PlayerManager.instance.player.transform;
                        FaceTarget();
                    }
                }
            }
        }
        else
        {
            Obtainable obj = other.transform.GetComponentInParent <Obtainable>();

            if (obj != null)
            {
                if (other.transform.parent.gameObject.layer == PlayerManager.instance.player.gameObject.layer)
                {
                    Vector3 direction = other.transform.position - transform.position;
                    float   angle     = Vector3.Angle(direction, transform.forward);

                    if (angle < fieldOfViewAngle * 0.5f)
                    {
                        RaycastHit hitInfo;

                        if (Physics.Raycast(transform.position, direction.normalized, out hitInfo, curLookRadius))
                        {
                            Debug.Log(hitInfo.collider.transform.parent.name);

                            if (hitInfo.collider.transform.parent == obj.transform)
                            {
                                if (!obj.isBeingHeld())
                                {
                                    target = other.transform;
                                    FaceTarget();
                                }
                                else
                                {
                                    target = null;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
Exemple #2
0
    public void OnTriggerEnter(Collider other)
    {
        Obtainable obj = other.transform.GetComponentInParent <Obtainable>();

        //&& other.transform.gameObject.layer == PlayerManager.instance.player.transform.gameObject.layer


        if (obj != null && !obj.isBeingHeld())
        {
            Debug.Log("Ive Been Hit");
            float _damage = obj.GetPower() * .1f;
            TakeDamage(_damage);
            Invoke("TurnOffAnim", animTime);
        }
    }