Heathen Systems Core is the foundation of Heathen Engineering’s coded assets for the Unity 3D game engine. While the asset has been developed with Unity 2017.3 and later in mind the code should work with Unity 5.5 and later with little or no modification. Full source code is provided with the asset from the Unity Asset Store; Unity Asset Store is the only authorized distributor of Heathen Systems or any of its related components. Standard Unity Asset Store licensing conditions apply Heathen Systems and its related components, additional provisions will be considered on a case by case bases.
Heathen Engineering Limited provides full support for Heathen Systems and related components as described in this document, on the Unity Asset Store page, the Heathen Engineering corporate site and limited to the versions of the Unity 3D game engine the asset package has been published under unless otherwise noted. You can contact support via Support@HeathenEngineering.com or the Heathen Engineering Support desk (visit HeathenEngineering.com for details).
Heathen Systems Render Cursor can make anything Unity is capable of rendering you hardware or software mouse cursor including support for animations, effects, 2D and 3D visuals as well as context sensitive pointers (pointer changes based on context).
This is accomplished by managing a standard Unity Camera and Render Texture and converting that into a suitable mouse cursor image on each frame. The Render Cursor Manager behaviour is responsible for maintaining the cursor resolution, hot spot, visibility, lock mode and cursor mode (hardware or software) and is fully integrated with Scriptable Variables.
The standard approach to use is to simply create any sprite, texture or model you like set to the RenderCursor layer (layer 31 by default) and animate it as required. An example using the ‘Krakin’ cursor by ‘theCasualties’ (source available at https://thecasualties.deviantart.com/art/Krakin-Cursor-XP-133961287) is provided in the demo scene supporting 14 animated pointer contexts.
To create a Render Cursor
Using the Game Object menu or the ‘Create’ context menu select UIX > Render Cursor.
This will create a new Camera set to the last layer with a render depth of -9999 and a Render Cursor Manager behaviour attached. You will also find a Cursor Canvas and Cursor Sprite has also been created parented to the camera. The canvas and sprite can be removed or used as you see fit.
When the game starts the Render Cursor Manager will generate a render texture and texture 2D resource internal to its self. The Resolution value of the Render Cursor Manager is the resolution of these texture assets. Generally a value between 64 and 128 is best but any value can be used. Its recommended but not required that the value be a power of 2 and be equal on the X and Y for best performance and quality.
Note that in editor hardware cursors may flicker and software cursors may lag. This is possible in a run-time build but has been observed to be a rare case related to pore system performance.
Triggering Context Changes
As all aspects of this system are Unity standard you can use any method you like to change your cursor, its image is being rendered in real time frame by frame set to the cursor texture so any animations or transitional effects you wish to do and can be rendered by Unity will work.
The typical approach is to use a Unity Animator defining each ‘context’ as an animation and using the Animatiors transitions to handle … well transitions. Using this method, you can simply call the Animator.SetTrigger method from a pointer event such as Pointer Enter to change the context of the point.