Releases: SlashGames/slash-framework
Unity Package 1.5
Installation
Just double click the Unity package while you have the Unity project open that you want the package to import to.
Another way is to use the menu item "Assets -> Import package -> Custom package..." and choose the Unity package.
Add Ons
The packages contain the main libraries plus addons. Addons can be installed by double clicking on the Unity package in the "Slash Framework/Addons" folder.
Slash.Unity.StrangeIoC
If you are using StrangeIoC (https://www.assetstore.unity3d.com/en/#!/content/9267) you can use this package to get some helper classes that make it easier to connect the Slash framework with the StrangeIoC architecture.
Changelog
The changes were mainly required due to a project we use the framework for. Most of the changes were made for the Unity.StrangeIoC and the Slash.Math library.
- Unity.Common - Add null reference for handlers in ExternalResource.Load
- Unity.Common - Add conversion methods from Vector2I to Vector3
- Slash.Math - Add rounding conversion from Vector2F to Vector2I
- Slash.Math - Add Min/Max property for RectangleI
- Unity.Common - Add flag to use a web resource from a https path instead of a http path
- Unity.StrangeIoC - Reference sub module even if already existent and remove context if last reference removed
- Unity.StrangeIoC - Look for mediator in sub modules if not found in MediationBinder of module
- Slash.Math - Add Cross and and Dot method for Vector2I
- Slash.System - Add utility method to copy a directory
- Slash.Math - Specify DataMember fields of Vector2F and Vector2I, so they are correctly serialized with Json
- Unity.Editor.Common - Add utility menu item to clear asset bundle cache
- Unity.Editor.Common - Add utility method to create a scriptable object at a specified path
- Unity.Common - Move RangeSliderHandle to separate file
- Unity.Deployment - Update CloudBuildManifest to use TryGetValue instead of GetValue
- Unity.StrangeIoC - Bind views of a scene module to its mediators on Launch to handle all views that are not mediated yet
- Slash.Math - Remove properties Top, Bottom, Left, Right from RectangleF that depend on the used coordinate system (Instead XMin, XMax,... should be used)
- Unity.Common - Add conversion methods to convert Vector3 to Vector2I
- Unity.StrangeIoC - Add custom editor for scene context view to show name of bound context
- Unity.StrangeIoc - Add custom base class for a View which provides a more performant bubbleToContext method which also works with the ContextView on the same game object as the view
- Unity.Common - Add web as a location for an ExternalResource
- Unity.Common - Clamp ratio of RangeSlider to 01
- Unity.Common - Store handler values when disabling to restore them when enabled again
- Unity.StrangeIoC - Dispatch ModuleSetupSignal after a module setup was performed
- Unity.StrangeIoC - Adding sub modules from installer before scene is loading and adding additional sub modules from scene afterwards
- Unity.StrangeIoC - Don't create temporary game objects to hold module configs, but put them on module view game object
- Unity.StrangeIoC - Add general way to setup a module with settings (even if it was already loaded)
- Unity.StrangeIoC - Add signal/command to load a module from a given installer
- Unity.StrangeIoC - Add possibility to specify sub modules of a module in the installer
- Unity.StrangeIoC - Allow adding a sub module with a non-MonoBehaviour installer
- Unity.StrangeIoC - Making sure that modules are not loaded twice in a cross context environment
- Collections - Add extension method ScrambledEquals to compare two sequences but ignoring order
- Collections - Add extension method to find index of an IEnumerable by predicate
- Unity.Common - Use integers for calculations in RangeSlider, otherwise there may be a problem with floating point precision (e.g. ratio 1 never reached)
- Unity.Common - Consider drag offset of range slider handle
- Unity.Common - Add events when the values of the RangeSlider changed and the possibility to set the values from outside
- Unity.Common - Add some null reference checks to RangeSlider to not throw an exception when slider is deactivated on instantiation
- Unity.StrangeIoC - Calling PreRegister and OnRegister for mediator when context view isn't set (The methods of the mediator have to be called, even if the mediator is already on the game object. It may have been duplicated or added manually, but isn't registered yet.)
- Unity.Common - Add a slider control to define a range
- Slash.Unity.Common - Add NonDrawingGraphic to use e.g. as click area which shouldn't be rendered, but react on raycasts
- Slash.Collections - Add Shuffle method for generic IList
- Slash.Collections - Add utility method to compute hash code for a sequence
- Slash.Collections - Add Implode utility method to convert enumerables to strings (for debugging mainly)
- Slash.Unity.StrangeIoC - Only register mediator once when added instead of multiple times
- Slash.Unity.Common - Add missing AvoidOverlappingRectangle
- Slash.Unity.Common - Add layout group to avoid vertical overlapping for child rectangles (Layouting doesn't move the rectangles if not overlapping)
- Slash.Math - Incorrect calculation of RectangleF.Center
- StrangeIoC - Add flag to ModuleContext to enable/disable logging
- StrangeIoC - Use custom mediation binder which checks if a mediator already exists on view game object before adding a new one
- Use EditorGUI.EnumFlagsField instead of EditorGUI.EnumMaskField in Unity 2017.3 and newer
- Don't use deprecated GUIText in FPSDisplay anymore
- Add utility method to create an asset for a ScriptableObject
- Add Slash.Unity.Deployment.Editor library to store utility scripts for deployment (Contains automatic build number and entitlements setter for Unity Cloud Build from previous projects)
- Move ECS depending editor scripts from Slash.Unity.Editor.Common to Slash.Unity.ECS.Editor
- Move ECS and Application dependent scripts from Slash.Unity.Common to Slash.Unity.ECS
- Only remove/create folders if they exist/not exist. Checking if mklink was successful
- Add paragraph to Readme to search for developer who wants to take over the framework
- Unity.StrangeIoC - Add possibility to set feature configs for a module which are mapped to same module instead of creating an own module
- Unity.StrangeIoC - Clear firstContext when ApplicationEntryPoint is destroyed
- Unity.StrangeIoC - Use a view cache for each module context, otherwise the cache may be cleared when the first context launches even if there are other unlaunched contexts
- Unity.StrangeIoC - Add coroutine runner to module
- Unity.StrangeIoC - Set config of domain context after initialization, otherwise sub modules are added twice
- Move type property drawer into own module Slash.Unity.InspectorExt
- Move Unity Window management into own module. Remove some dependencies from Slash.Unity.StrangeIoC
- Add variable to adjust in SymlinkSlashFramework.bat if Slash Framework was added at different path than Slash.Framework
Unity Package 1.4
Installation
There are three packages to provide more compatibility:
- Slash.Framework.1.4.Unity.5.5 (use for Unity 5.5)
- Slash.Framework.1.4.Unity.5.6 (use for Unity 5.6)
- Slash.Framework.1.4.Unity.2017.1 (use for Unity 2017.1 and later)
Just double click the Unity package you need while you have the Unity project open that you want the package to import to.
Another way is to use the menu item "Assets -> Import package -> Custom package..." and choose the Unity package.
Add Ons
The packages contain the main libraries plus addons. Addons can be installed by double clicking on the Unity package in the "Slash Framework/Addons" folder.
Slash.Unity.StrangeIoC
If you are using StrangeIoC (https://www.assetstore.unity3d.com/en/#!/content/9267) you can use this package to get some helper classes that make it easier to connect the Slash framework with the StrangeIoC architecture.
Changelog
- Appending only two slashes for path of a ExternalResource on Android devices as the path already starts with a slash
- Unity.Examples - Move to Slash folder to match namespace
- Use symlinks for Unity.Examples project
- Add template batch file for Symlink tool, move into separate folder
- Catch exception in TypePropertyDrawer when no type could be loaded for a given type string
- Tools - Correctly symlink library to path that consists of more than one folder (e.g. Editor\Slash.Unity.Editor.Common)
- StrangeIoC - Add possibility to manually specify scene name of a module
- StrangeIoC - Add UnmapCrossContextBindings method to StrangeConfig to make it possible to remove cross context signals
- StrangeIoC - Add RemoveBridge method to ModuleContext to remove bridges cleanly
- UseSymlink determines slash framework path automatically and uses relative path from symlink path
- Add batch files to create symbolic links to work with the framework in a Unity project
Unity Package 1.3
Installation
There are two packages to provide more compatibility:
- Slash.Framework.1.3.Unity.5.5 (use for Unity 5.5)
- Slash.Framework.1.3.Unity.5.6 (use for Unity 5.6 and later)
Just double click the Unity package you need while you have the Unity project open that you want the package to import to.
Another way is to use the menu item "Assets -> Import package -> Custom package..." and choose the Unity package.
Add Ons
The packages contain the main libraries plus addons. Addons can be installed by double clicking on the Unity package in the "Slash Framework/Addons" folder.
Slash.Unity.StrangeIoC
If you are using StrangeIoC (https://www.assetstore.unity3d.com/en/#!/content/9267) you can use this package to get some helper classes that make it easier to connect the Slash framework with the StrangeIoC architecture.
Unity Package 1.2
Installation
There are two packages to provide more compatibility:
- Slash.Framework.1.2.Unity.5.3 (use for Unity 5.3 and 5.4)
- Slash.Framework.1.2.Unity.5.5 (use for Unity 5.5 and later)
Just double click the Unity package you need while you have the Unity project open that you want the package to import to.
Another way is to use the menu item "Assets -> Import package -> Custom package..." and choose the Unity package.
Add Ons
The packages contain the main libraries plus addons. Addons can be installed by double clicking on the Unity package in the "Slash Framework/Addons" folder.
Slash.Unity.StrangeIoC
If you are using StrangeIoC (https://www.assetstore.unity3d.com/en/#!/content/9267) you can use this package to get some helper classes that make it easier to connect the Slash framework with the StrangeIoC architecture.
Unity Package 1.1 for Unity 5.4
Build with Unity 5.4 DLLs. Should work out of the box by importing Unity package to your Unity project.
Let me know if you have any issues with it :)
Slash Framework Unity Package v1.0
Unity Package, created with Unity 5.3, for testing. Let us know if any issues occur.
You can also build your own Unity Package with the batch file at "Tools/Build/BuildUnityPackage.bat" now.