You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Repaint editor GUIs on shortcut
* Editor variable changes saved properly
Before changing a variable would not be detected and so not saved/serialized in some cases.
* Use callback attributes to repaint editors
This would not work with the `upm-support` branch #14 as the attributes are not searched for in the attribute that these scripts are in by default.
* Allow multiple un/loadTrigger attributes, use action to trigger repaints
* Remove SceneManagement, it's not required
The scene is automatically set as dirty when the gui target is
* Fixes to gui with enableInEdit mode
Admittedly this should have been in #12. However, here are the fixes anyways.
GUI buttons to un/load show in edit mode if enableInEditMode is true. Disabling and re-enabling the DllManipulatorScript works now.
* Properly reset custom triggers (fix duplicates)
Previously triggers would not be cleared properly and so be duplicated. (Static variables seem to persist between entering/exiting playmode)
* Custom triggers optional execute on main thread
Allow custom triggers to be executed on the main thread in a queue. We need this internally to repaint the editor GUI as it uses the Unity API.
* Update README.md
* Mark scene dirty only if options changed
* Bug fix, resetting when not initialized
Initialize() is not always called so we should not always reset.
* small fix
* Review fixes
Also RegisterTriggerMethod receives attribute instead of bool,
Fix naming in DllManipulatorOptions
* Add comments
Copy file name to clipboardExpand all lines: README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,6 +30,8 @@ Tool created mainly to solve old problem with reloading [native plugins](https:/
30
30
- If something is not working, first check out available options (and read their descriptions), then [report an issue](https://github.com/mcpiroman/UnityNativeTool/issues/new).
31
31
- Options are accessible via `DllManipulatorScript` editor or window.
32
32
- Although this tool presumably works in built game, it's intended to be used in editor.
33
+
- Get callbacks in C# when the dll load state has changed with attributes like `[NativeDllLoadedTrigger]`, see `Attributes.cs` for more information
34
+
- Unload and load all DLLs via shortcut `Alt+D` and `Alt+Shfit+D` respectively. Editable in the Shortcut Manager for 2019.1+
33
35
34
36
## Limitations
35
37
- Marshaling parameter attributes other than `[MarshalAs]`, `[In]` and `[Out]` are not supported.
Debug.LogError($"Trigger method must either take no parameters or one parameter of type {nameof(NativeDll)}. Violation on method {method.Name} in {method.DeclaringType.FullName}");
130
+
Debug.LogError($"Trigger method must either take no parameters, one parameter of type {nameof(NativeDll)} or one of type {nameof(NativeDll)} and one int. "+
131
+
$"See the TriggerAttribute for more details. Violation on method {method.Name} in {method.DeclaringType.FullName}");
//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.
93
126
//Thankfully thread safety with Lazy mode is not implemented yet.
94
127
95
-
DllManipulator.UnloadAll();
96
-
DllManipulator.ForgetAllDlls();
97
-
DllManipulator.ClearCrashLogs();
128
+
if(DllManipulator.Options!=null)// Check that we have initialized
0 commit comments