Один из подходов состоит в том, чтобы в классах * stati c хранилась ссылка MonoBehaviour. Вот так:
public class RunLater : MonoBehaviour
{
public static RunLater selfReference = null;
public static void Do()
{
InitSelfReference();
selfReference.DoInstanced();
}
static void InitSelfReference()
{
if (selfReference == null)
{
// We're presuming you only have RunLater once in the entire hierarchy.
selfReference = Object.FindObjectOfType<RunLater>();
}
}
public void DoInstanced()
{
Invoke("RunThisLater", 2f);
}
void RunThisLater()
{
Debug.Log("This will run later");
}
}
Теперь вы сможете вызывать RunLater.Do () из любого места в вашем коде других игровых объектов. Удачи!