Example #1
0
    private void OnTriggerEnter2D(Collider2D other_collider)
    {
        Rigidbody2D other_rigid_body = other_collider.gameObject.GetComponent <Rigidbody2D>();

        PlatformAnimator platform_animator = other_collider.gameObject.GetComponent <PlatformAnimator>();

        // add objects that overlap the hitbox to objects in range
        if (other_rigid_body != null && platform_animator == null)
        {
            combat_script.addObjectInRange(other_collider.gameObject);

            // add to grab objects in range
            grab_script.AddObjectInRange(other_collider.gameObject);
        }
    }
Example #2
0
    private void findObjectToGrab()
    {
        float min_distance      = Mathf.Infinity;
        float distance_to_other = Mathf.Infinity;

        foreach (GameObject o in objects_in_range)
        {
            //Debug.Log(o.name + " in Box");
            if (!o.activeSelf)
            {
                continue;
            }
            PlatformAnimator animator = o.GetComponent <PlatformAnimator>();
            if (animator != null)
            {
                continue;
            }


            Vector3 forward_vector = getForwardVectorFromScale();

            //grab only objects in front of player
            Vector3 vec_to_other = (o.transform.position - gameObject.transform.position);
            distance_to_other = getDistanceToOther(o);

            if (Vector3.Dot(vec_to_other.normalized, forward_vector) < 0.7f ||
                distance_to_other > grab_range)
            {
                // other object is not in front of player
                continue;
            }

            // grab the closest object in front of player
            if (distance_to_other < min_distance)
            {
                min_distance   = distance_to_other;
                grabbed_object = o;
                grabbing       = true;
                SoundEffectScript.Instance.playGrabSound(transform.position);
            }
        }
    }