//We are using triggers, so this gets called on overlap
    private void OnTriggerEnter2D(Collider2D vCollision)
    {
        NC_FakePhysicsScripts tOtherObject = vCollision.gameObject.GetComponent <NC_FakePhysicsScripts>();

        Debug.Assert(tOtherObject != null, "Other Object is not FakePhysics compatible");
        ObjectHit(tOtherObject);
    }
 //virtual functions can be overridded in derived classes
 protected virtual void ObjectHit(NC_FakePhysicsScripts vOtherObject)
 {
     Debug.LogFormat("{0} hit by {1}", name, vOtherObject.name);      //Just print it for now
 }