自分のスクリプトを取得しなくても、GameObjectのまま、SendMessageでメソッドを呼び出せば良いことに気がついた。
GameObject.SendMessage - Unity スクリプトリファレンス
if (Physics.Raycast(pos, dir, out hit)) { GameObject obj = hit.collider.gameObject; obj.SendMessage("Hit"); // Hitが呼び出すメソッド名 }
これならば名前空間が違っていても呼び出すメソッドを実装しておけば大丈夫。