Unity Tools


Details

This modules provides multiple tools for use in game builds, and for extending the Unity Editor itself. DLL_SPECS

This modules provides multiple tools for use in game builds. It is included in the UnityTools.dll, and it's classes are defined in the EyeEngines.Unity.Tools Namespace. Features include:

This modules also provides multiple tools for use in the Unity editor. This module is included in the UnityEditorTools.dll, and it's classes are included in the EyeEngines.EditorUnity.Tools Namespace

Player Tools** Examples: Most of these examples are used to display the use of an editor tool.

VectorAndRankArrayHolder.cs DictionaryExample.cs InterfaceTest.cs MenuTree.cs MenuTreeTester.cs MeshByCamera.cs MonoBehaviourEditModeUpdatable.cs RankScriptable.cs RankSerializable.cs Soldier.cs StructType.cs VolumeTransformTester.cs Weapon.cs WeaponType.cs

Modules

 EyEengines.EditorTools.UnityEditor.dll
 
 EyEengines.UnityTools.dll
 

Classes

class  AssetDatabaseHelper
 Created by Bunny83 for UnityAnswers.com - public domain, many thanks! Use the GetUniqueAssetPath function, passing in a built-in object, to get the custom path to the object. Make note of this path, and you can pass it to LoadAssetFromUniqueAssetPath to load it at a later time. Editor Only functionality.
 
class  CollectionExtensions
 This static functional class provides two simple convenience functions. These functions check to determine if a collection actually exists, and if so if it has any entries.
 
class  DefaultExpandablePropertyDrawer
 This version of the ExpandableObjectPropertyDrawer class simply uses the standard property iterator to draw the property members of the drawn property. Essentially, this puts a standard property drawer inside an ExpandableObjectPropertyDrawer control, so the user does not need to specify exactly how to draw it inside OnFoldoutGUI.
 
class  EditModeIntervalCallbacks
 this class provides the user with the ability to have function called at a constant time intervals while in the editor.
The function will be invoked at the provided interval once registered, and will continue to be until unregistered.
The code that calls the registration function is also responsible for unregistering, before the delegate goes out of scope(is destroyed). If any member functions are called when not in the editor, they will do nothing and return immediately.
 
class  EditModeIntervalEditorComponent
 This EditorOnly Class contains the function used to initializes the EditModeIntervalCallbacks, and register it with the UnityEditorApplication. This class is defined as a UnityEditor-Only-class, which allows the EditModeIntervalCallbacks class to be used, but not function, in player-only code.
 
class  EditorToolsOptions
 The class serializes and stores the various options for use in the UnityEditorTools module. It also contains function to display these options, in the EyEEnginesPref section of the project->settings window.
 
class  EditorUtil
 This class contains a variety of functions. Some are used to make accessing SerializedObjects a little easier, and others are for drawing specialized controls.
 
class  ExpandableObjectPropertyDrawer
 This custom Property drawer provides all ScriptableObject descendants with the option to be displayed as an ObjectField in the inspector, which the user may expanded to show, and edit, the object's details. Any stored Asset, of the appropriate type may be dragged over this control. If a saved asset is NOT specified in the object field, the scriptable object is stored as part of the Scene or PreFab GameObject it is a member of. When expanded, the ScriptableObjects Editor will be drawn "in-line", just below the ObjectField, like a regular member variable. You may customize the editor window, as normal, for any derived type, and it will be displayed in the details section.
 
class  GameObjectExtensionEditorComponent
 Editor Adapter component for GameObjectExtensions. It allows GameObjectExtensions to potentially call certain editor function, when actually running in the editor, without the need to actually reference the editor dll Upon InitializeOnLoadMethod, this class will assign these editor functions to a delegate found in the GameObjectExtensions class. If NOT in the editor, these delegates will NOT have functions assigned to them, and so will not be invoked by GameObjectExtensions.
 
class  GameObjectExtensions
 Contains various static convenience and extension function for Unity GameObjects.
 
class  GetAssetPathPopupWindow
 Menu tool to find the UniquePath for a given asset. This is useful for finding the UniquePath for built-in objects, which can then be loaded at runtime using AssetDatabaseHelper.LoadAssetFromUniqueAssetPath
 
class  GizmoExtensions
 Class contains multiple functions for drawing gizmos
 
class  GradientToTexture
 Contains a single Extension function for gradients: ConvertToTexture
 
class  EditorUtil.GUIState
 Stores the GUI status. Status includes: the indent level, hierarchyMode, and enabled/disabled state. Use the EditorUtil function RecordGUIState, RecordGUIStateAndSetToDefault,SetGUIStateToDefault,RestoreGUIState, or access the members manually. A rect can also be stored with the record functions, but not automatically restored.
 
interface  IStreamable
 This interface has two functions to read and write the contents of the implementing class to the stream. They use the current position of the provided stream, which is incremented as they read/write their data.
 
class  LimitedListDrawer< T >
 This class contains static function for drawing large lists. Optimized to draw only the part of the list that is being displayed, it does not slow down the system for large lists.
 
class  LimitedListProperty
 This is a concrete, SerializedProperty type, variant of the abstract base class, LimitedListDrawer. It defines/implements the abstract functions declared required by LimitedListDrawer, using SerializedProperties.
 
class  Mathg
 The class provide a few math functions and constants that Unity's Mathf class does not.
 
class  MemberInfoExtension
 This Utility class extends the .net MemberInfo class, in order to provide a single method to access both .net PropetyInfo and FieldInfo objects, transparently. Two functions are provided, GetValue and GetSystemType.
A NotImplementedException will be thrown if the provided MemberInfo parameter is for any MemberType other than MemberTypes.Field, or MemberTypes.Property.
 
class  MenuInfo
 This is a sample data class we want to store in a tree. All members to be stored, must be serializable.
 
class  PerObjectNamedBooleans
 Allows each unique Unity.Object to store it's own key/boolean pair.
 
class  ProgressThreadParam
 As a base class, this object provides a simple way to create a derived class, that can pass all the parameters needed, to a threaded function. Even when not derived from it provides a simple but limited way for the called Thread and the calling thread to communicate The calling thread may only READ member variables after starting the thread. Once this flag goes false, the calling thread may read or write all the other values. There is no "locking" implemented internally to ensure good behavior, so be cautious. It is the responsibility of the called thread to set all the values in this class, before setting the isProcessing flag to false.
 
class  PropertyStats
 This class extracts and cashes various properties of a given SerializedProperty along with how large it will be drawn.
 
class  RectExtensions
 Contains multiple extension functions for use with the Rect class.
 
class  ReflectionExtensions
 The ReflectionsExtensions Class which provides some additional and convenience Reflection functions.
 
class  RenamePopupWindow
 Simple EditorWindow with a single field for entering a string.
 
class  ResourceSystem
 A static functional class that provides several useful functions relating to ScriptableObject Assets and Instances of objects.
 
class  SerializableDictionary< TKeyType, TValueType >
 Provides a runtime System.Collections.Generic.Dictionary< Key,Value > Structure, that can be properly serialized in unity. This class is derived from, and has the functionality of a standard c# Dictionary<K,V> In order for the SerializableDictionary to show up in the editor with the correct controls: you will need to create two need classes and files in order to apply the appropriate attributes Create a non-generic class derived from SerializableDictionary. This class does not need a body, but does need to be tagged with [System.Serializable]. Create a property drawer class derived from SerializableDictionaryPropertyDrawerBase (stored in an Editor folder). This class does not need a body, but does need to be tagged with [[CustomPropertyDrawer(typeof(YourClassDerivedFromSerializableDictionary), true)]].
 
class  SerializableDictionaryPropertyDrawerBase
 property drawer used to display SerializableDictionry.
 
class  SerializableTree< T >
 This is the Class version of SerializableTree that is recommended for use in Unity. It will automatically perform serialization callbacks for use in Unity's editor, by implementing the ISerializationCallbackReceiver interface. Note: you must define a class that derives from this one, using a specific T, AND mark it with the [System.Serializable] attribute in order for the class to serialize properly. (Unity does not support attributes on classes using generic types.) Also note: the type T, that is used, must be serializable.
 
class  SerializableTreeNode
 SerializableTreeNode class is used for serialization of SerializableTreeBase. It stores the details about how each node of the tree is related to their nodes, by integer index. All members are serializable base-type, and none are references.
Most of these values are used to index into array in the main tree class, which is serialized separately, as a simple array.
 
class  SerializedPropertyExtensions
 Contains extension functions for SerializedProperty to allow direct access to their values via reflection.
 
class  SerializedTreePropertyDrawerBase< T >
 SerializedPropertyDrawerBase base class used to create property drawers for any class based upon SerializableTree&#60;T&#62; You will need to derive your own version of this class, and specify T, in order to be able to assign it the CustomPropertyDrawer Attribute.
 
class  StreamableInterfaceExtension
 Contains functions that provide "constructors" for objects that implement the IStreamable interface, given a provided Stream
 
class  TransformExtensions
 Class providing some extended function that help perform certain tasks with Unity's Transforms.
 
class  TypeExtension
 Contains functions that operate on a System.Type, or, on a given object's Systsme.Type.
 
class  UniqueStringID
 This class is used to store a unique value for a particular integer/string combination.

 
class  UnityToolsCatDebug
 This class exists solely to setup the Debug Categories for this module, on Load. Contains a static setup function which is called by InitializeOnLoad. This function registers the Category with the CategoricalDebug module. It also contains the indexes of the registered categories. CategoricalDebug allows for enabling/disabling logging, based on this tag.
 
class  Vector3Extensions
 this extension class contains some simple but useful mathematical functions that can be performed on Vector3's.
 
class  VolumeTransforms
 Small set of volumetric functions
 
class  Zipper
 Simple class with static Zip and Unzip functions. Implements System.IO.Compression.GZipStream for compression.
 
class  ZipperMenu
 Simple class with static Zip and Unzip functions. Implements System.IO.Compression.GZipStream for compression.