docs(API): Merge branch 'main' of https://github.com/JamesLaFritz/CoreFramework2022
cherry-picking commit 5a009b3.
Date: Tue Feb 6 04:15:54 2024 -0500
This commit merges changes from the 'main' branch of the CoreFramework2022 repository into the current branch.
This commit is the result of cherry-picking commit 54c8459.
Date: Tue Feb 6 03:19:57 2024 -0500
- Updated XML Documentation comments for variables, methods, and classes.
- Added Author and Description tags to the file header.
- Improved comments for clarity and consistency.
- Updated region headers for clarity and organization.
The following files were modified:
- Runtime/Extensions/ArrayExtensions.cs
- Runtime/Extensions/ObjectExtensions.cs
- Runtime/Extensions/QuaternionExtensions.cs
- Runtime/Extensions/TextExtensions.cs
- Runtime/Extensions/TransformExtensions.cs
- Runtime/Extensions/Vector4Extensions.cs
- Runtime/Functional/Option.cs
This commit is the result of cherry-picking commit 54c8459.
Date: Tue Feb 6 03:19:57 2024 -0500
- Updated XML Documentation comments for variables, methods, and classes.
- Added Author and Description tags to the file header.
- Improved comments for clarity and consistency.
- Updated region headers for clarity and organization.
The following files were modified:
- Runtime/Extensions/ArrayExtensions.cs
- Runtime/Extensions/ObjectExtensions.cs
- Runtime/Extensions/QuaternionExtensions.cs
- Runtime/Extensions/TextExtensions.cs
- Runtime/Extensions/TransformExtensions.cs
- Runtime/Extensions/Vector4Extensions.cs
- Runtime/Functional/Option.cs
This commit is the result of cherry-picking commit 54c8459.
Date: Tue Feb 6 03:19:57 2024 -0500
-
Updated XML Documentation comments for variables, methods, and classes.
-
Added Author and Description tags to the file header.
-
Improved comments for clarity and consistency.
-
Updated region headers for clarity and organization.
The following files were modified:
- Runtime/Extensions/ArrayExtensions.cs
- Runtime/Extensions/ObjectExtensions.cs
- Runtime/Extensions/QuaternionExtensions.cs
- Runtime/Extensions/TextExtensions.cs
- Runtime/Extensions/TransformExtensions.cs
- Runtime/Extensions/Vector4Extensions.cs
- Runtime/Functional/Option.cs
docs(API): Merge branch 'main' of https://github.com/JamesLaFritz/CoreFramework2022
This was a result of creating a commit to update the Documentation and then ammending that commit.
Date: Tue Feb 6 02:36:07 2024 -0500
Update the API documentation with Docfx.
This commit is the result of cherry-picking commit e379acc.
Date: Mon Feb 5 23:37:42 2024 -0500
-
Added header comments to several files to provide clarity on authorship and functionality.
-
Updated Bootstrapper.cs with a header comment describing its purpose in the application.
-
Updated CoreFrameworkMenu.cs with a header comment detailing its role in providing menu path constants.
-
Updated Interactable.cs with a header comment explaining its purpose as a base class for interactable GameObjects.
-
Updated Singleton.cs with a header comment describing its role as a generic Singleton class.
-
Updated Application.cs with a header comment outlining its purpose in managing the game application.
-
Updated Timer.cs with a header comment explaining its role in managing timers within Unity applications.
This commit is the result of cherry-picking commit 2f9cf0c due to loss of data during a rebase.
Date: Mon Feb 5 22:52:58 2024 -0500
-
Updated XML Documentation comments for variables, methods, and classes.
-
Updated Unity Messages region with clearer method names and comments.
-
Renamed 'includeInactive' to '_includeInactive' for consistency with naming convention.
-
Renamed 'strategy' to '_strategy' for consistency with naming convention.
-
Improved error handling and logging in LoadFile method.
The following changes significantly alter the architecture and usage of the SaveSystem and related classes:
- Updated
VersionControl.cs
to use Version type for 'CurrentFileVersion' and 'MinFileVersion'. - Introduced ScriptableSingleton for SaveSystem to ensure a single instance across all scenes.
- Implemented SettingsProvider instead of
CoreFrameworkSettingSO.cs
to centralize configuration settings.
Ensure to review and update existing implementations to accommodate these changes.
BREAKING CHANGE: This commit changes the architecture and usage of the SaveSystem and VersionControl.
This commit is part of a rebase to update commit messages to new standards. cherry-picking commit e0f3ac3
Date: Mon Feb 5 22:20:48 2024 -0500
This commit enhances the code styling by adding XML documentation to improve readability and maintainability.
This commit introduces a new feature as part of a rebase to update commit messages to new standards and cherry-picking commit 01bcf31.
Date: Mon Feb 5 21:52:54 2024 -0500
This feature adds a menu to enhance navigation to the relevant project settings and user preferences.
Additionally, it updates the CoreFrameworkProjectSettingsProvider to display before other project settings in the Core Path.
This commit is part of a rebase to update commit messages to new standards and cherry-picking commit d59d9e2.
Date: Mon Feb 5 00:55:05 2024 -0500
This commit refactors the codebase by organizing debug logging functionality into an extension method for objects. It enhances code modularity and readability by encapsulating logging operations within extension methods, making them easily accessible from any object.
Changes:
- Deleted: Runtime/DebugMonoBehaviour.cs.meta
- Deleted: Runtime/DebugScriptableObject.cs.meta
- New file: Runtime/Extensions/ObjectExtensions.cs
- New file: Runtime/Extensions/ObjectExtensions.cs.meta
- Modified: Runtime/Interactable.cs
- Deleted: Runtime/Log.cs
- Deleted: Runtime/Log.cs.meta
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit 505bb30.
Date: Sun Feb 4 23:38:22 2024 -0500
Affects how settings are managed and accessed by using User Prefferances and Project Settings instead of relying on a scriptable object.
Changes:
- Modified: Editor/Attributes/Properties/DropDownSelection/SceneAttributePropertyDrawer.cs
- New file: Editor/Settings/CoreFrameworkPreferences.cs
- New file: Editor/Settings/CoreFrameworkPreferencesProvider.cs
- New file: Editor/Settings/CoreFrameworkProjectSettings.cs
- New file: Editor/Settings/CoreFrameworkProjectSettingsProvider.cs
- New file: Editor/Settings/CoreFrameworkSettingInitialization.cs
- Deleted: Editor/Settings/CoreFrameworkSettingsEditor.cs.meta
- Modified: Runtime/Bootstrapper.cs
- Modified: Runtime/Settings/CoreFrameWorkSettings.cs
BREAKING CHANGE: Affects how settings are managed and accessed.
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit 989e312.
Date: Sun Feb 4 21:20:43 2024 -0500
Remove unused using statements from several files:
- Editor/Attributes/Properties/DropDownSelection/InputAxisPropertyDrawer.cs
- Editor/Saving/SaveEditorWindow.cs
- Runtime/Attributes/ButtonAttribute.cs
- Runtime/Attributes/Decorators/HeaderAttribute.cs
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit 726d99d.
Date: Sun Feb 4 18:57:27 2024 -0500
Resolve an issue where GameObject creation was failing when the component required a generic type in the Editor/CreateGameObjectFromUnityScript.cs
file.
Changes:
- modified: Editor/CreateGameObjectFromUnityScript.cs
fix: Add undo functionality for GameObject creation, move component to top, and enable component renaming
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit 022799c.
Date: Sun Feb 4 18:26:07 2024 -0500
Implemented the following features:
- Added undo functionality for GameObject creation
- Moved the component to the top of the hierarchy
- Enabled renaming of the component
Changes:
- modified: Editor/CreateGameObjectFromUnityScript.cs
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit c2cc819.
Date: Tue Dec 26 05:14:19 2023 -0500
Added #IF UNITY_EDITOR || DEBUG
preprocessor directive to ensure that Info and Warnings are displayed only in the Editor or if this is a Debug Build.
Changes:
- modified: Runtime/Log.cs
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit f23e2fb.
Date: Sat Dec 23 04:45:38 2023 -0500
Fixed an issue where a null reference
error was being set when the type of a script is not a class.
Changes:
- modified: Editor/CreateGameObjectFromUnityScript.cs
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit 2eb9211.
Date: Thu Dec 21 06:17:08 2023 -0500
Update the FindField
method to utilize System.Reflection GetField
instead of GetFields()
,
eliminating the need to loop through all fields to check their names.
Changes:
- modified: Editor/SerializedPropertyExtensions.cs
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit 921e4f0.
Date: Tue Dec 19 22:19:40 2023 -0500
Rename GetProperty
to getSerializedProperty
Add the ability to get the targeted object that a Serialized Property belongs to, as well as the ability to get the fields, find a field, and get the value of a field.
Changes:
- modified: Editor/Attributes/Properties/ShowIfBoolPropertyDrawer.cs
- modified: Editor/Attributes/Properties/ShowIfEnumPropertyDrawer.cs
- modified: Editor/SerializedPropertyExtensions.cs
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit 54bd998.
Date: Tue Dec 19 19:21:12 2023 -0500
Rename PropertyDrawerHelper to be SerializedPropertyExtensions.cs and update usages to properly reference.
Changes:
- modified: Editor/Attributes/Properties/ShowIfBoolPropertyDrawer.cs
- modified: Editor/Attributes/Properties/ShowIfEnumPropertyDrawer.cs
- modified: Editor/Inspector/AttributeMonoBehaviourInspector.cs
- renamed: Editor/PropertyDrawerHelper.cs -> Editor/SerializedPropertyExtensions.cs
- renamed: Editor/PropertyDrawerHelper.cs.meta -> Editor/SerializedPropertyExtensions.cs.meta
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit f372d60.
Date: Tue Dec 19 19:07:06 2023 -0500
Updates the findProperty
method to be an extension of SerializedProperty
in the Editor/PropertyDrawerHelper.cs
file.
Changes:
- modified: Editor/PropertyDrawerHelper.cs
This is part of a rebase to update commit messages to new standard and git cherry-pick --strategy-option=theirs 7360023
Date: Tue Dec 19 18:37:53 2023 -0500
This commit updates the TransformExtensions.cs file, addressing errors and simplifying the code for better readability and efficiency.
Changes:
- Corrected errors in TransformExtensions
- Simplified code structure for clarity
Date: Sun Dec 17 05:54:13 2023 -0500
This commit introduces Transformation extensions to GameObject in GameObjectExtensions.cs
, providing convenient methods for common transformation tasks.
- Added Transformation extensions
- Improved functionality for GameObject
This is part of a rebase to update commit messages to new standard and git cherry-pick --strategy-option=theirs ef18156
This commit adds the OrNull
suffix to methods in GameObjectExtensions.cs
to address NullReferenceExceptions
that occur when a GameObject
is slated to be destroyed.
- Added
OrNull
suffix to methods - Prevented
NullReferenceExceptions
This is part of a rebase to update commit messages to new standard. git cherry-pick --strategy-option=theirs 31e61e6
This commit updates the format and structure of the documentation files to adhere to the new standard and . git cherry-pick --strategy-option=theirs d83ebaf The documentation files have been organized into appropriate directories and meta files have been added for each HTML file.
- Updated documentation format
- Organized documentation into directories
- Added meta files for HTML files
This commit updates the CoreFrameWorkSettings.cs file to default the Start Scene and Boot Scene to null if there is no Settings ScriptableObject present. This prevents errors and allows for more flexibility in project configuration.
This is part of a rebase to update commit messages to the new standard and git cherry-pick --strategy-option=theirs 4d9608e.
This commit adds null checking to the Bootstrapper class to prevent errors. Now, it allows having the Core Framework in your project without being forced to use the bootstrapper.
This is part of a rebase to update commit messages to the new standard and git cherry-pick --strategy-option=theirs faf8979.
This commit is part of a rebase to fix commit messages to new standards and cherry-picking commit c5de31c. It modifies Unity Types for documentation purposes.
Date: Mon Nov 20 12:46:12 2023 -0500
Changes:
- Modified Vector4GameEventListener.cs in Unity Event Inspector/Typed Unity Events/Unity Types
- Added ExposedReferenceAttribute documentation
- Modified various documentation files related to logging, attributes, and properties
This commit implements major changes and bug fixes, starting the transition to use UIElements. It is part of a rebase process to fix an old commit message to conform to new standards.
Date: Fri Nov 3 20:07:33 2023 -0400
Changes:
- Modified ExposedReferencePropertyDrawer.cs (Editor)
BREAKING CHANGE: This commit introduces a breaking change to resolve conflicts and ensure proper display of Scriptable Object properties.
This commit implements major changes and bug fixes, starting the transition to use UIElements. It is part of a rebase process to fix an old commit message to conform to new standards.
Date: Fri Nov 3 07:36:24 2023 -0400
Changes:
- Modified SceneAttributePropertyDrawer.cs (Editor)
- Modified AttributeMonoBehaviourInspector.cs (Editor)
- Modified ButtonAttributeHelper.cs (Editor)
- Modified PropertyDrawerHelper.cs (Editor)
- Added Settings.meta (Editor)
- Added CoreFrameworkSettingsEditor.cs (Editor)
- Added CoreFrameworkSettingsEditor.cs.meta (Editor)
- Added Bootstrapper.cs (Runtime)
- Added Bootstrapper.cs.meta (Runtime)
- Modified DebugMonoBehaviour.cs (Runtime)
- Added DebugScriptableObject.cs (Runtime)
- Added DebugScriptableObject.cs.meta (Runtime)
- Modified Interactable.cs (Runtime)
- Added Log.cs (Runtime)
- Added Log.cs.meta (Runtime)
- Modified CodedGameEventListener.cs (Runtime)
- Modified BaseReference.cs (Runtime)
- Modified BaseVariable.cs (Runtime)
- Added Settings.meta (Runtime)
- Added CoreFrameWorkSettings.cs (Runtime)
- Added CoreFrameWorkSettings.cs.meta (Runtime)
- Added CoreFrameworkSettingsSO.cs (Runtime)
- Added CoreFrameworkSettingsSO.cs.meta (Runtime)
- Added Singleton.cs (Runtime)
- Added Singleton.cs.meta (Runtime)
- Modified package.json (Root)
BREAKING CHANGE: This commit introduces breaking changes due to the transition to UIElements.
Add icons for different scripts, allowing them to be displayed as the chosen icon in both the inspector and the project view.
Modified:
- ExposedReferencePropertyDrawer.cs
Added:
- VariableIcon.png
- Vector2VariableIcon.png
- Vector3VariableIcon.png
- Vector4VariableIcon.png
Modified meta files:
- SavableEntity.cs.meta
- SaveSystem.cs.meta
- JsonStrategy.cs.meta
- SavingStrategy.cs.meta
- VersionControl.cs.meta
- BaseGameEvent.cs.meta
- GameEvent.cs.meta
- IGameEvent.cs.meta
- Combination/GameObjectBoolGameEvent.cs.meta
- Combination/GameObjectFloatGameEvent.cs.meta
- Combination/GameObjectIntGameEvent.cs.meta
- System/BoolGameEvent.cs.meta
- System/ByteGameEvent.cs.meta
- System/CharGameEvent.cs.meta
- System/DoubleGameEvent.cs.meta
- System/FloatGameEvent.cs.meta
- System/IntGameEvent.cs.meta
- System/LongGameEvent.cs.meta
- System/SByteGameEvent.cs.meta
- System/ShortGameEvent.cs.meta
- System/StringGameEvent.cs.meta
- System/UIntGameEvent.cs.meta
- System/ULongGameEvent.cs.meta
- System/UShortGameEvent.cs.meta
- Unity/AnimationCurveGameEvent.cs.meta
- Unity/AudioClipGameEvent.cs.meta
- Unity/BoundsGameEvent.cs.meta
- Unity/Color32GameEvent.cs.meta
- Unity/ColorGameEvent.cs.meta
- Unity/GameObjectGameEvent.cs.meta
- Unity/LayerMaskGameEvent.cs.meta
- Unity/ObjectGameEvent.cs.meta
- Unity/QuaternionGameEvent.cs.meta
- Unity/SceneGameEvent.cs.meta
- Unity/Vector2GameEvent.cs.meta
- Unity/Vector3GameEvent.cs.meta
- Unity/Vector4GameEvent.cs.meta
- CodedGameEventListener.cs.meta
- IGameEventListener.cs.meta
- GameEventListener.cs.meta
- Typed Unity Events/System Types/BoolGameEventListener.cs.meta
- Typed Unity Events/System Types/ByteGameEventListener.cs.meta
- Typed Unity Events/System Types/DoubleGameEventListener.cs.meta
- Typed Unity Events/System Types/FloatGameEventListener.cs.meta
- Typed Unity Events/System Types/IntGameEventListener.cs.meta
- Typed Unity Events/System Types/LongGameEventListener.cs.meta
- Typed Unity Events/System Types/SByteGameEventListener.cs.meta
- Typed Unity Events/System Types/ShortGameEventListener.cs.meta
- Typed Unity Events/System Types/StringGameEventListener.cs.meta
- Typed Unity Events/System Types/UIntGameEventListener.cs.meta
- Typed Unity Events/System Types/ULongGameEventListener.cs.meta
- Typed Unity Events/Unity Types/AudioClipGameEventListener.cs.meta
- Typed Unity Events/Unity Types/BoundsGameEventListener.cs.meta
- Typed Unity Events/Unity Types/Color32GameEventListener.cs.meta
- Typed Unity Events/Unity Types/ColorGameEventListener.cs.meta
- Typed Unity Events/Unity Types/GameObjectGameEventListener.cs.meta
- Typed Unity Events/Unity Types/LayerMaskGameEventListener.cs.meta
- Typed Unity Events/Unity Types/ObjectGameEventListener.cs.meta
- Typed Unity Events/Unity Types/QuaternionGameEventListener.cs.meta
- Typed Unity Events/Unity Types/SceneGameEventListener.cs.meta
- Typed Unity Events/Unity Types/Vector2GameEventListener.cs.meta
- Typed Unity Events/Unity Types/Vector3GameEventListener.cs.meta
- Typed Unity Events/Unity Types/Vector4GameEventListener.cs.meta
- UnityGameEventListener.cs.meta
- System/BoolUnityEvent.cs.meta
- System/ByteUnityEvent.cs.meta
- System/CharUnityEvent.cs.meta
- System/DoubleUnityEvent.cs.meta
- System/FloatUnityEvent.cs.meta
- System/IntUnityEvent.cs.meta
- System/LongUnityEvent.cs.meta
- System/SByteUnityEvent.cs.meta
- System/ShortUnityEvent.cs.meta
- System/StringUnityEvent.cs.meta
- System/UIntUnityEvent.cs.meta
- System/ULongUnityEvent.cs.meta
- System/UShortUnityEvent.cs.meta
- Unity/AnimationCurveUnityEvent.cs.meta
- Unity/AudioClipUnityEvent.cs.meta
- Unity/BoundsUnityEvent.cs.meta
- Unity/Color32UnityEvent.cs.meta
- Unity/ColorUnityEvent.cs.meta
- Unity/GameObjectUnityEvent.cs.meta
- Unity/LayerMaskUnityEvent.cs.meta
- Unity/ObjectUnityEvent.cs.meta
- Unity/QuaternionUnityEvent.cs.meta
- Unity/SceneUnityEvent.cs.meta
- Unity/Vector2UnityEvent.cs.meta
- Unity/Vector3UnityEvent.cs.meta
- Unity/Vector4UnityEvent.cs.meta
- BaseVariable.cs.meta
- System/BoolVariable.cs.meta
- System/ByteVariable.cs.meta
- System/CharVariable.cs.meta
- System/DoubleVariable.cs.meta
- System/FloatVariable.cs.meta
- System/IntVariable.cs.meta
- System/LongVariable.cs.meta
- System/SByteVariable.cs.meta
- System/ShortVariable.cs.meta
- System/StringVariable.cs.meta
- System/UIntVariable.cs.meta
- System/ULongVariable.cs.meta
- System/UShortVariable.cs.meta
- Unity/AnimationCurveVariable.cs.meta
- Unity/AudioClipVariable.cs.meta
- Unity/BoundsVariable.cs.meta
- Unity/Color32Variable.cs.meta
- Unity/ColorVariable.cs.meta
- Unity/GameObjectVariable.cs.meta
- Unity/LayerMaskVariable.cs.meta
- Unity/ObjectVariable.cs.meta
- Unity/QuaternionVariable.cs.meta
- Unity/SceneVariable.cs.meta
- Unity/Vector2Variable.cs.meta
- Unity/Vector3Variable.cs.meta
- Unity/Vector4Variable.cs.meta
This commit adds the ExposedReferenceAttribute, which can be applied to fields or properties to make reference types appear as foldout properties in the Inspector. This is particularly useful for ScriptableObjects.
This commit introduces a comprehensive saving system to the project, including the following features:
- SaveEditorWindow.cs: A custom editor window for managing save settings.
- ISavable.cs: An interface to implement in any component that has state to save/restore.
- JsonStatics.cs: Utility methods for converting between UnityEngine.Vector3 and JsonObject.
- SavableEntity.cs: A MonoBehaviour for all game objects that need to save data.
- SaveSystem.cs: A MonoBehaviour that provides the interface to the Json saving system.
- JsonStrategy.cs: A saving strategy that saves and loads in the form of a JSON string.
- SavingStrategy.cs: An abstract class that saving strategies inherit from.
- VersionControl.cs: A class to manage version control for the saving system.
This implementation allows for efficient saving and loading of game state, with support for multiple saving strategies and version control.
This commit introduces a new MonoBehaviour class, DebugMonoBehaviour
, designed to facilitate logging of debug information within MonoBehaviour scripts.
It provides methods for logging informational, error, and warning messages, along with the method and behaviour names.
The class includes an option to toggle the display of debug information.
This commit introduces typed game events and listeners to the ScriptableObjectArchitecture:
- Added new base classes
BaseGameEvent<T1, T2>
andIGameEvent<T1, T2>
for game events with two type parameters. - Implemented
BaseGameEvent<T1, T2>
for combination typed events with two parameters. - Added typed game event assets and their meta files.
- Implemented
IGameEventListener<T1, T2>
for listeners with two type parameters. - Updated existing listeners (
CodedGameEventListener
,UnityGameEventListener
) to support typed events with one and two parameters.
This commit refactors the ButtonAttribute.cs and BaseVariable.cs files:
- In ButtonAttribute.cs, removed the assertion check for ButtonMode.Both as it is now a valid mode.
- In BaseVariable.cs:
- Changed the declaration of the 'clampable' field to have consistent formatting.
- Updated the usage of 'm_isClamped' to 'isClamped' in the 'ShowIfBool' attribute for 'minValue' and 'maxValue' fields.
- Fixed the return statement in the SetValue method to correctly return the variable's value when it is read-only.
This commit addresses an issue in the package.json file that was causing it to not load correctly in Unity from the PackageManager. The "name" field in the package.json file has been corrected to "com.jameslafritz.coreframework" to match the expected naming convention.
This commit adds several new game objects and their corresponding components to the Unity scene file. Each component includes various properties and settings.
Here's a summary of the changes:
-
HeaderExample GameObject:
- Added a GameObject named "HeaderExample" with a MonoBehaviour component attached to it. The MonoBehaviour component has several "health" properties defined.
-
ShowIfEnumExample GameObject:
- Added a GameObject named "ShowIfEnumExample" with a MonoBehaviour component attached to it. The MonoBehaviour component contains properties related to enumerations.
-
SceneExample GameObject:
- Added a GameObject named "SceneExample" with a MonoBehaviour component attached to it. The MonoBehaviour component specifies a scene name and index.
-
AttributeUIElementsExample GameObject:
- Added a GameObject named "AttributeUIElementsExample" with a MonoBehaviour component attached to it. The MonoBehaviour component defines various properties such as health, maxHealth, someFloat, someOtherFloat, someBool, someString, and animator, along with animation parameters.
-
InputAxisExample GameObject:
- Added a GameObject named "InputAxisExample" with a MonoBehaviour component attached to it. The MonoBehaviour component specifies input-related properties.
-
Directional Light GameObject:
- Added a GameObject named "Directional Light" representing a light source in the scene.
-
InfoBoxExample GameObject:
- Added a GameObject named "InfoBoxExample" with a MonoBehaviour component attached to it. The MonoBehaviour component contains someFloat, someOtherFloat, someBool, and someString properties.
These changes are related to adding game objects and defining their properties within the Unity scene.
This commit introduces a set of reference variables to the ScriptableObjectArchitecture. Reference variables are designed to hold references to various types of Unity objects and primitives. This addition aims to provide a flexible and convenient way to manage references within the architecture.
- Added reference variables for different data types, including bool, byte, char, double, float, int, long, sbyte, short, string, uint, ulong, ushort, Vector2, Vector3, Vector4, Color, Color32, Bounds, Quaternion, GameObject, AudioClip, AnimationCurve, LayerMask, Object, and Scene.
- Implemented reference variables for Unity types, providing robust support for managing references to Unity-specific objects.
- Created base reference class to encapsulate common functionalities and facilitate extensibility.
- Organized reference variables into appropriate namespaces and folders for better project organization and maintainability.
This enhancement expands the capabilities of the ScriptableObjectArchitecture, allowing developers to easily work with references across different parts of their Unity projects.
This commit introduces the ScriptableObjectArchitecture feature, which includes the following changes:
Addition of editor scripts and inspectors for managing scriptable object variables. Creation of runtime scripts for defining events and listeners using scriptable objects. Implementation of various typed events and corresponding listener classes. Introduction of base variable and event classes for extensibility. Creation of utility scripts for common functionalities. These changes enable the usage of scriptable objects for defining events and variables, providing a flexible architecture for managing game data and logic.
This commit focuses on updating code refactoring changes, primarily consisting of modifying variable names and improving code readability.
The changes include:
- Correcting variable naming conventions to adhere to PascalCase.
- Improving consistency in variable names across different files.
These updates aim to enhance code clarity and maintainability.
This commit focuses on adding XML documentation comments to the codebase to facilitate auto documentation generation. These comments are essential for documenting the purpose, parameters, return values, and other relevant information about methods, classes, and properties.
This commit modifies the docs/License/Asset Licenses.html file to reflect changes in asset licenses. It ensures that the documentation accurately represents the licenses associated with project assets.
This commit focuses on generating documentation using Docfx for both the API and manual sections. It includes updates to documentation templates, integration of Docfx for generating attribute manual and API documentation, addition of image assets, modifications to various files for template integration, and adjustments to styles and scripts for the documentation website.
These updates aim to enhance the clarity, usability, and comprehensiveness of the project's documentation, providing developers with comprehensive resources for understanding and utilizing the project's attributes.
This commit completes the attribute samples in the project.
It modifies the Editor/Attributes/Properties/FolderPathAttributeDrawer.cs
, Editor/Inspector/AttributeMonoBehaviourInspector.cs
,
and Runtime/Attributes/Properties/ShowIfBoolAttribute.cs
files to finalize the attribute implementations.
Additionally, it modifies the Samples/Attributes/AttributesExample.unity
file to include the newly added attribute samples.
The following new files are introduced:
ButtonExample.cs
and its corresponding meta fileButtonExample.cs.meta
FolderPathExample.cs
and its corresponding meta fileFolderPathExample.cs.meta
RequiredReferenceExample.cs
and its corresponding meta fileRequiredReferenceExample.cs.meta
ShowIfBoolExample.cs
and its corresponding meta fileShowIfBoolExample.cs.meta
ShowIfEnumExample.cs
and its corresponding meta fileShowIfEnumExample.cs.meta
ShowIfMulti.cs
and its corresponding meta fileShowIfMulti.cs.meta
These examples provide developers with practical demonstrations of various attribute functionalities, such as button attributes, folder path attributes, required reference attributes, boolean show-if attributes, enum show-if attributes, and multi-condition show-if attributes.
Furthermore, the README.md
file in the docs
directory is updated to reflect the completion of the attribute samples.
This commit adds Icon and Read-Only Examples to the project.
It modifies the Samples/Attributes/AttributesExample.unity
file to incorporate these examples.
Additionally, it introduces IconExample.cs
and ReadOnlyExample.cs
, along with their corresponding meta files,
under Samples/Attributes/Scripts/Properties/Modifiers/
.
The Icon Example demonstrates how to use icons with attribute modifiers, providing developers with a practical demonstration of enhancing the visual representation of properties in their Unity projects.
The Read-Only Example showcases how to apply the read-only attribute to properties, ensuring they cannot be modified at runtime. This example offers developers insight into controlling property behavior effectively.
Furthermore, the README.md
file in the docs
directory is updated to reflect the addition of the Icon and Read-Only Examples.
This commit addresses an issue where icons were not displaying correctly if a property has other attributes.
Changes include modifications to several files:
Editor/Animation/AnimationParameterDrawer.cs
Editor/Attributes/Properties/DropDownSelection/InputAxisPropertyDrawer.cs
Editor/Attributes/Properties/DropDownSelection/SceneAttributePropertyDrawer.cs
Editor/Attributes/Properties/DropDownSelection/TagAttributePropertyDrawer.cs
Editor/Attributes/Properties/FolderPathAttributeDrawer.cs
Editor/Attributes/Properties/Modifiers/ReadOnlyPropertyDrawer.cs
Editor/Attributes/Properties/RequiredReferencePropertyDrawer.cs
Editor/Attributes/Properties/ShowIfBoolPropertyDrawer.cs
Editor/Attributes/Properties/ShowIfEnumPropertyDrawer.cs
Editor/Inspector/ButtonAttributeHelper.cs
(previously Inspector Button/ButtonAttributeHelper.cs)Editor/Inspector/ScriptableObjectButtonsEditor.cs
Editor/Inspector/UIElementsCustomEditor.cs
Editor/PropertyDrawerHelper.cs
Additionally, the following changes were made:
Editor/Inspector/AttributeMonoBehaviourInspector.cs
and its corresponding meta file were added.Editor/Inspector/AttributeScriptableObjectInspector.cs
and its corresponding meta file were added.Editor/Inspector/ButtonAttributeHelper.cs
(previously Inspector Button/ButtonAttributeHelper.cs) and its corresponding meta file were renamed.Samples/Attributes/Scripts/AttributesExample.cs
was modified.
These modifications ensure that icons are properly displayed even when properties have other attributes.
This commit introduces a Tag Example to the project.
It modifies the Samples/Attributes/AttributesExample.unity
file to incorporate the Tag Example.
Additionally, it adds TagExample.cs
along with its corresponding meta file, TagExample.cs.meta
,
under Samples/Attributes/Scripts/Properties/Drop Down Selection/
.
The Tag Example showcases how to utilize tag properties with attributes providing developers with a practical demonstration of integrating tag-related functionality into their Unity projects.
Furthermore, the README.md
file in the docs
directory is updated to reflect the addition of the Tag Example.
This commit adds a Scene Example to the project.
It modifies the Samples/Attributes/AttributesExample.unity
file to include the Scene Example.
Additionally, it introduces SceneExample.cs
and its corresponding meta file
SceneExample.cs.meta
under Samples/Attributes/Scripts/Properties/Drop Down Selection/
.
The Scene Example demonstrates how to utilize scene properties with attributes, offering developers a practical demonstration of integrating scene-related functionality into their Unity projects.
Furthermore, the README.md
file in the docs
directory is updated to reflect
the addition of the Scene Example.
This commit adds an Input Axis Example to the project. It modifies the Samples/Attributes/AttributesExample.unity file to include the Input Axis Example. Additionally, it introduces InputAxisExample.cs and its corresponding meta file InputAxisExample.cs.meta under Samples/Attributes/Scripts/Properties/Drop Down Selection/.
This example demonstrates how to use input axis properties with attributes, providing developers with a practical reference for implementing input handling in their Unity projects.
Furthermore, the README.md file in the docs directory is modified to reflect the addition of the Input Axis Example.
refactor(AnimatorParameterAttribute.cs): Move Animator Parameter Attribute with Animation related files
This commit refactors the project structure by relocating the AnimatorParameterAttribute.cs file from the Runtime/Attributes/Properties/Drop Down Selection/ directory to the Runtime/Animation/ directory.
This change ensures better organization and alignment of files related to animation within the project.
feat(Attribute, Destroy, Interactable, Extensions, Functional)!: Add new files related to attribute decorators and properties, Destroy system, Interactable system, and Extension methods
This commit introduces several new files related to attribute decorators and properties in the editor and runtime sections of the project. These files include implementations for various attribute decorators such as HeaderAttribute and InfoBoxAttribute, as well as property drawers for handling specific types of attributes like DropDownSelection and FolderPathAttribute.
Additionally, this update includes the implementation of the Destroy system, which consists of DestroyAfterTime.cs and DestroyNoChildren.cs. These components provide functionality to destroy game objects in Unity, offering flexibility in managing object lifecycles.
Furthermore, the Interactable system is introduced, featuring Interactable.cs, which allows for interaction with objects within the Unity game environment, enhancing user engagement and gameplay dynamics.
Lastly, extension methods such as ArrayExtensions.cs, QuaternionExtensions.cs, TextExtensions.cs, and Vector4Extensions.cs are added. These extensions augment the project with additional functionality, making development tasks more streamlined and efficient.
This major update ensures compatibility with Unity 2022 and enhances the project's extensibility, usability, and overall functionality.
BREAKING CHANGE: This update introduces significant changes to the project structure and functionality. Developers relying on the previous implementation may need to update their code and configurations to accommodate these changes.
docfx change documentation