Использовать SendMessage или есть альтернатива?
Вам нужны классические события.class Enemy{void Start(){Player.Spawn+=StartAttack;}}
class Player{event someDelegate Spawn;}
Альтернатива SendMessage - правильная архитектура проекта. 
И да, я бы не использовал SendMessage ни в каком виде.