Events & Counters
Sometimes Notes are not sufficient for debugging: when you want to debug function calls order, need a history of states or want to relate a code event to profiling data etc...Events cover all this: they present your data on a frame based scale both in the graph view and the data readout tree. A click on any event's data column presents you a detailed analysis ("when? what?"). And of course: if you pass complex data types they will be handled and presented in a readable manner. Simply call MIP.Log() and you've created an event.
Counters are a special kind of events as they additionally count and show total calls to them (not only on a frame scale). Guess what, MIP.Count() will trigger the counter.
Watchers
You surely know the situation: you want to check a state, so you add a quick Debug.Log(myState) in an Update() function...Console log explodes, game stutters and you'll hardly notice a state change. Next you see yourself adding logic to your Debug.Log....
This ain't fun and watchers are perfect to solve this problem. Think of a watcher as a conditional events. They only fire an event, if the passed content has changed. And you'll see it in the graph view, too. Needless to say that complex data types are handled when you pass them to MIP.Watch().
Logging << >> Order now!

