public override bool TestCollsionVsCircle(CirlceCollisionHull2D other /*,ref Collision c*/)
    {
        // pass if distance between centers is <= sum of radii
        // optimized collision passes if (distance between centers) squared <= (sum of radii) sq
        // 1. get the two centers
        // 2. difference between centers
        // 3. distance squared = vector dot(diff,diff)
        // 4. sum of radii
        // 5. square sum
        // 6. DO THE TEST; distSq <= sumSq

        Vector2 diff = this.position - other.position;

        // get distance
        float distanceSqr = Vector2.Dot(diff, diff);
        float radii       = radius + other.radius;

        if ((distanceSqr <= radii * radii))
        {
            return(true);
        }

        else
        {
            return(false);
        }
    }
 // Start is called before the first frame update
 void Start()
 {
     otherCircle = colliderTarget.GetComponent <CirlceCollisionHull2D>();
     otherRect   = colliderTarget.GetComponent <AABBCollisionHull2D>();
     otherOBB    = colliderTarget.GetComponent <OBBCollisionHull2D>();
 }
    // Update is called once per frame


    public override bool TestCollsionVsCircle(CirlceCollisionHull2D other)
    {
        // see circle
        return(other.TestCollsionVsAABB(this.GetComponent <AABBCollisionHull2D>()));
    }
Exemplo n.º 4
0
 public abstract bool TestCollsionVsCircle(CirlceCollisionHull2D other);
Exemplo n.º 5
0
 public override bool TestCollsionVsCircle(CirlceCollisionHull2D other, ref Collision c)
 {
     // see circle
     return(other.TestCollsionVsCircle(this.GetComponent <CirlceCollisionHull2D>(), ref c));
 }
Exemplo n.º 6
0
 public abstract bool TestCollsionVsCircle(CirlceCollisionHull2D other /*,ref Collision c*/);