Ey muy bueno para aquellos principiantes, el uso de interfaces es una herramienta muy útil, pero la estas implementado de manera correcta, el problema es la interacción del Player en este caso no es correcto, no entiendo porque compruebas tag si el RayCast solo podría colisionar con "Objetos Interactivos" bastaría solo con utilizar Capas, de hecho no sería ni siquiera necesario el uso de Layer.
Aunque de todos modos esto es mejor realizarlo con funciones virtuales.
De todos modos buen comienzo..
private void InteractivePlayer()
{
var ray = "Rayo desde el centro de la camara";
RayCastHit hit;
if(Physics.RayCast(ray, out hit, 2))
{
var interactive = hit.transform.GetComponent<IInteractive>();
if(interactive)
{
Ejecutar la Accion.. ..
}
}
}
Aunque de todos modos esto es mejor realizarlo con funciones virtuales.
De todos modos buen comienzo..