/// <summary> /// Will reset the DllManipulator and Initialize it again. /// Note: Unloads all Dlls, may be a dangerous operation if using preloaded /// </summary> public void Reinitialize() { DllManipulator.Reset(); #if UNITY_EDITOR if (EditorApplication.isPlaying || Options.enableInEditMode) #endif Initialize(); }
private void Reset() { //Note on threading: Because we don't wait for other threads to finish, we might be stealing function delegates from under their nose if Unity doesn't happen to close them yet. //On Preloaded mode this leads to NullReferenceException, but on Lazy mode the DLL and function would be just reloaded so we would up with loaded DLL after game exit. //Thankfully thread safety with Lazy mode is not implemented yet. if (DllManipulator.Options != null) // Check that we have initialized { DllManipulator.Reset(); } _singletonInstance = null; }