Non-static Singleton implementation

Hey, I am trying to code a game state handler, with death events etc. and I would like to be able to “record” it throughout the game, so I can implement replay.

So how would I go about this?
Since I can’t implement with the usual singleton approach, as that would require static variables.

First idea was to use FindObjectsOfType in Start() but I can’t find any examples of people doing this, so I’m kind of nervous to try it out. For safety/performance reasons.

If you know what you are doing with Singletons then go ahead and use static variables - anything else is too tortuous.

Recorder.js

   static var instance : Recorder;

   function Awake()
   {
         instance = this;
   }

   function OnDestroy()
   {
         if(instance==this)
              instance = null;
   }