The format is based on Keep a Changelog, and this project follows Semantic Versioning.
The IGUCanvasContainer
class used the IGUObject.OnIGU()
method to render the IGU element instead of the IIGUObject.InternalOnIGU()
method.
When using the IGUObject.OnIGU()
method in the IGUCanvasContainer
class, the colors of the IGU element were not modified.
The IIGUObject.AlteredDepth(List<IIGUObject>, int)
method was removed due to the fact that the IGUObject.MyConfig
property already fulfilled this function.
Previously, the IGUObject.MyConfig
property did not implement the private method IGUObject.SetIGUConfig(IGUConfig)
that allows the IGU element to change its depth automatically.
The issue in the IGUDepthDictionary.ReorderDepthDictionary(IGUDepthDictionary[])
method that caused ArgumentNullException
when reordering the depth list has been fixed.
The IGUCanvas.OnIGU
, IGUCanvas.OnEndOfFrame
, and IGUCanvas.OnToolTip
properties have been removed so that events better respect the depth of IGU elements.
The IGUCanvas.LoadWhenSceneActivates
depth has been removed and replaced with the IGUCanvas.Status
property.
IGUCanvas.Deeps
and IGUCanvas.Status
properties.
IGUCanvas.Clear()
method to clear the depth list.
- In
ToolTip
drawing methods: -
- It is now checked whether the IGU element is visible.
-
ToolTip
text must not be empty or null.
This change ensures that the ToolTip
is only drawn if the IGU element is visible and the ToolTip
text is valid.
Class IGUActionManager<A, T>
: manages the admission of actions for specified objects.
The class only accepts actions from objects that have not been registered.
The IGUActionManager<A, T>
class provides a more organized and efficient way to manage object actions.
The class ensures that only registered object actions are performed.
IGUUtilityDistortion
class.
DoNotModifyRect
structure.
IGURect.ModifiedSize
, IGURect.ModifiedPosition
, IGURect.ModifiedUp
, IGURect.ModifiedDonw
, IGURect.ModifiedRight
, IGURect.ModifiedLeft
, and IGURect.ModifiedCenter
properties: Replaced by the IGURect.ModifiedRect
property.
IGURect.SetModifiedPosition(vector2)
and IGURect.SetModifiedSize(Vector2)
methods.
HashCodeCompare
class.
IGUDrawer.GetMousePosition()
method: replaced by the IGUDrawer.MousePosition property.
Methods IGUObject.CreateIGUInstance<T>(string)
and IGUObject.CreateIGUInstance(Type, string)
: replaced by IGUObject.Create<T>(string)
and IGUObject.Create(Type, string)
.
DeepAction
and IGUContainer
classes: Replaced by IGUCanvas
, IGUCanvasContainer
and IGUDepthDictionary
.
Class IGUBehaviour
.
IGUToolTip
class. \
In the IGURect.SetPivot(float, float)
method, input values now pass through a Mathf.Clamp01(float)
.
In the IGURect.SetRotation(float)
method, if the input value exceeds +360f
or -360f
, it returns to 0f
.
IGURepeatButton.OnRepeatClick
property: to be used as an event.
Classes IGUTextFieldStringEvent
, IGUCanvas
, IGUCanvasContainer
, IGUDepthDictionary
and interfaces IIGUToolTip
and IIGUEndOfFrame
.
Protected methods IGUObject.GetRect(bool)
and IGUObject.GetRect()
: replaced by the IGUObject.LocalRect
property.
IGULabel.RichText
property.
IGULabel.SetMarkedText(params MarkedText[])
method.
IGUObject.MyConfg
property for IGUObject.MyConfig
.
IGUObject.myConfg
protected field for IGUObject.myConfig
.
IGUSelectionGrid
class has been updated to use layout classes internally.
IGUObject.Ignition()
, IGUObject.Start()
, IGUObject.IgnitionEnable()
, IGUObject.IgnitionDisable()
and IGUObject.DestroyIgnition()
methods:
IGUObject.Ignition() >> IGUObject.IGUAwake()
IGUObject.Start() >> IGUObject.IGUStart()
IGUObject.IgnitionEnable() >> IGUObject.IGUOnEnable()
IGUObject.IgnitionDisable() >> IGUObject.IGUOnDisable()
IGUObject.DestroyIgnition() >> IGUObject.IGUOnDestroy()
IGUTextObject.GetGUIContent(string)
method:
Use the explicit conversion operator from the IGUContent
class.
IGUObject.LocalConfig
property: obtains the IGU element settings, taking into account the parent IGU element.
Explicit string to IGUStyle
conversion: enter the style name to load it.
IGUTextObject.RichText
property.
IGUTextObject.SetMarkedText(params MarkedText[])
method.
IGUTextObject.GetGUIContentTemp(Texture, string);
IGUTextObject.GetGUIContentTemp(Texture);
IGUTextObject.GetIGUContentTemp(string, Texture, string);
IGUTextObject.GetIGUContentTemp(string, string);
IGUTextObject.GetIGUContentTemp(string, Texture);
IGUTextObject.GetIGUContentTemp(Texture, string);
IGUTextObject.GetIGUContentTemp(Texture);
IGUTextObject.GetIGUContentTemp(string);
The dependency com.cobilas.unity.management.runtime
has been updated to version 2.2.2
.
This update was made due to fixes made to the SceneContainerManager
class, which is used by the IGUDrawer
class.
The problem in the IGUCheckBox
class when changing the Checked
state has been fixed.
The problem was that the Checked
state was not changing correctly because the function checked which mouse trigger was fired before changing the state.
The fix ensures that the Checked
state changes correctly when the user clicks the checkbox.
BackEndIGU
and IGUUtilityDistortion
classes have been added.
Problem in the static method IGUContainer.CreatePermanentGenericIGUContainer()
.
The container generated by the static method IGUContainer.CreatePermanentGenericIGUContainer()
did not become a non-destructible object of the scene.
This meant that the container could be destroyed during the games scene change, which could cause problems. The fix involved modifying the
IGUContainer.CreatePermanentGenericIGUContainer()` method to ensure that the generated container becomes a non-destructible scene object.
Problem in the IGUVerticalScrollbar
and IGUHorizontalScrollbar
classes.
The IGUObject.LowCallOnIGU()
method in the IGUVerticalScrollbar
and IGUHorizontalScrollbar
classes passed the IGUSliderObject.Value
property through a Mathf.Clamp(float, float, float)
.
However, this function did not take into account the ScrollbarThumbSize
property of the IGUVerticalScrollbar
and IGUHorizontalScrollbar
classes.
The fix involved modifying the IGUObject.LowCallOnIGU()
method to take the ScrollbarThumbSize
property into account.
Problem in the IGUScrollView
class.
The IGUScrollView
class previously passed the value of the IGUSliderObject.Value
property of the IGUVerticalScrollbar
and IGUHorizontalScrollbar
classes to the RectClip without checking whether objects of type IGUVerticalScrollbar
and IGUHorizontalScrollbar
were visible.
This could cause the RectClip to be positioned incorrectly.
The fix involved adding a check to the IGUScrollView
class code to ensure that objects of type IGUVerticalScrollbar
and IGUHorizontalScrollbar
are visible before passing the value of the IGUSliderObject.Value
property to the RectClip.
Problem in the IGUComboBoxDrawer
drawing class.
The IGUComboBoxDrawer
drawing class needed to be updated due to a change in the IGUComboBox
class.
The fix ensures that the IGUComboBoxDrawer
class works correctly with the updated version of the IGUComboBox
class.
The IGUScrollView.OnScrollView
event was not working correctly due to a problem with the function call order.
The fix ensures that the IGUScrollView.OnScrollView
event is called at the correct time.
The IGURectClip.AutoInvert
property has been added to automatically invert the IGURectClip.ScrollView
property.
This property makes it easier to configure IGURectClip
to work with IGUScrollView
.
The IGUComboBox
class no longer inherits from the IIGUSerializationCallbackReceiver
interface.
The IGUComboBox.IgnitionEnable()
method fulfills the same function as the interface.
Class IGUComboBox
:
Updating the IGUComboBox
class resolved issues that made it unfeasible.
- New abstract methods:
-
IGULayout.Remove(int)
-
IGULayout.Remove(int, bool)
-
IGULayout.Remove(IGUObject, bool)
- New properties:
-
IGUScrollView.VerticalScrollbarIsVisible
-
IGUScrollView.HorizontalScrollbarIsVisible
Replacement of methods in IGUObject
.
The following methods on IGUObject
have been deprecated:
Awake()
by Ignition()
OnEnable()
by IgnitionEnable()
OnDisable()
by IgnitionDisable()
OnIGUDestroy()
by DestroyIgnition()
Old method | New method | Description |
---|---|---|
Awake() |
Ignition() |
Called before the first frame is updated. |
OnEnable() |
IgnitionEnable() |
Called when the object is activated. |
OnDisable() |
IgnitionDisable() |
Called when the object is deactivated. |
OnIGUDestroy() |
DestroyIgnition() |
Called when the object is destroyed. |
Fixed an issue that caused ScriptableObjects
that depended on the IGUStyleCustom
and SO_IGUTextSettings
classes to malfunction.
- The metadata of the
IGUStyleCustom
andSO_IGUTextSettings
classes was accidentally changed by the editor.
This change affectedScriptableObjects
that depended on these classes, causing compilation errors. - Solution: The metadata of the
IGUStyleCustom
andSO_IGUTextSettings
classes has been restored to the previous version.
This issue has been present since version 3.5.0
and affects all versions prior to 3.5.5
.
The dependency com.cobilas.unity.utility
has been updated from version 2.10.3
to version 2.10.4
.
The dependency com.cobilas.unity.core.net4x
has been updated from version 1.4.1
to version 1.4.2
.
In the internal method IGUDrawer.RemoveReserialization(IGUObject)
a null argument exception could occur, this occurred when the method first checked whether the object IGUObject
existed in a list that could be null.
Updated dependency com.cobilas.unity.utility
to version 2.10.3
.
This update includes bug fixes and new features that do not directly impact this package.
The sub-dependency [email protected]
was made explicit in the package dependencies.
The IGUDrawer
and CobilasResolutions
classes inherit the ISceneContainerItem
interface so they can be added to the SceneContainerManager.
The IGUStyleStatus.ScaledBackgrounds
property caused compilation errors because it depended on the GUIStyleState.ScaledBackgrounds
property, which in turn is exclusive to the editor.
A change in package dependencies.
##Fixed
- The
AddToPermanentContainer
attribute in theCobilasResolutions
andIGUDrawer
classes has been replaced by[AddSceneContainer]
. - The Cobilas.Unity.Utility assembly reference has been added to Cobilas.Unity.Graphics.asmdef.
- ps: Lack of attention in this XD.
- package dependencies have been changed.
##Fixed
- Fixed a dependency that was incorrect.
The dependency in question was
[email protected]
which did not exist.
- Package dependencies have been changed.
- The package author was changed from
Cobilas CTB
toBélicusBr
.
##Fixed
- There was a visual error that occurred when two
IGUWindow
elements were displayed on the screen due to the fact that the same temporary element was used. - In the styles
Black text field style
andBlack text field border style
theText Clipping
field was marked incorrectly with the valueTextClipping.Overflow
which was changed toTextClipping.Clip
.
- The methods
GUIStyle:IGUStyle.GetGUIStyleTemp(IGUStyle)
andGUIStyle:IGUStyle.GetGUIStyleTemp(IGUStyle, int)
are not supported, use the explicit convention ofIGUStyle
.
##Fixed
- When calling the
IGUScrollView.ScrollViewAction
event, doNots will not be activated.
##Fixed
- The protected field
IGUComboBox.scrollViewBackgroundStyle
was not initialized which caused a null reference. - Now checking whether the mouse is inside the
IGUComboBox
has been fixed. - The protected properties
IGUScrollView.alwaysShowVertical
andIGUScrollView.alwaysShowHorizontal
are not used. - The positioning of the scrolls has been corrected.
- Reworked all
CustomPropertyDrawer
classes ofIGUObject
elements.
##Fixed
- Fixed problem in the
IIGUObject.internalOnIGU
method ofIGUObjetc
which was incorrectly checking theIGUObject.Pivot
property. Now onlyIGUObject.PivotX
is set correctly. - Fixed an unexpected error that occurred during the serialization and deserialization process that caused the
GUIStyle tooltipStyle
field to becomeGUIStyle.none
when replacingGUIStyle
withIGUStyle
.
- Added protected method
IGUObjetc.LowCallOnIGU()
as new internal processOnIGU
. - Added the
IGURectClip
class to make clippings.
- Removed methods:
IGUObject.GetDefaultValue(GUIStyle, GUIStyle)
IGUScrollView.ScrollTo(IGUObject)
IGUScrollView.ScrollTo(IGURect)
IGUScrollView.ScrollTo(Rect)
- Added the
IGUStyle
style class.
Now the IGUConfig and IGUColor functions are executed in the void:IIGUObject.InternalOnIGU()
method of the IGUObject
class.
##Fixed
In the IGUNumericBox
and IGUNumericBoxInt
classes, the sub-elements were not parented, which did not change the position of the sub-elements.
The protected method Vector2:IGUObject.GetPosition()
is not supported.
The property IGUObject.GlobalRect { get; set; }
represents the local position of the IGUObject
element added to the parent IGUObject
element.
The protected methods
protected Rect GetRect(bool iginoreNotMod);
protected Rect GetRect();
were added to obtain the position and size.
Now the properties IGUTextObject.UseTooltip
, IGUTextObject.MyContent
and IGUObject.MyConfg
receive a default value.
The IIGUSerializationCallbackReceiver
interface has been added to serialize IGUObject
in the Editor.
In IGUComboBox
there was a problem that occurred when the object was affiliated with another that caused the position of the IGUComboBox
not to be changed.
The BeginDoNotMofifyRect
and EndDoNotMofifyRect
functions affect child and sub-child objects, and have been replaced by the doNots compo.
CreateIGUInstance
methods have been removed from all IGUObject
classes and replaced with
IGUObject.CreateIGUInstace(Type);
IGUObject.CreateIGUInstace(Type, string);
IGUObject.CreateIGUInstace<T>(string);
IGUObject.CreateIGUInstace<T>();
Now the layout schemes have been added.
public sealed class IGUHorizontalLayout{}
public sealed class IGUVerticalLayout{}
public sealed class IGUGridLayout{}
##Fixed
In the IGUConfig:GetModIGUConfig()
method, in addition to checking whether the parent is null, they are also checked
if parent.GetModIGUConfig().IsEnabled && myConfg.IsEnabled
is parent.GetModIGUConfig().IsVisible && myConfg.IsVisible
are true.
In the Vector2:GetPosition()
method, the parents position will be obtained from the
parent.myRect.ModifiedPosition` property
which will cause incorrect positioning.
##Fixed
In the IGUConatiner.AddDeepAction(int)
method, the RefreshDepth();
instruction was executed before the DeepAction
object
which meant that the first DeepAction
object was not added to the OnIGU event.
##Fixed
Depth not applied correctly #ISU-IGU0001
In the IGUContainer
class where depth is applied, now when adding a new depth the event responsible for calling DeepAction.OnIGU()
is updated.
##Fixed
In the void:InitInternalIndowFunction()
method, the GUI.DragWindow
instruction was executed after the windowFunction
action, which could cause the window to stop moving due to the fact that
that if any IGU element was disabled or when the GUI.enabled = false
property was called within the windowFunction
action.
- Removal of unused fields.
- Removal of unnecessary assignments.
- Transforming possible fields into
readonly
.
The body of the public static Vector2Int GetBaseResolutionPlatform()
method has been changed.
##Fixed
The IGUEvent
property was removed due to conflicts with the GUI
class methods.
In the IGUDrawer
and IGUConatiner
classes, there was a problem with the OnIGU events that with each deserialization
OnIGU events were not cleared which caused IGU elements to be duplicated.
Mouse triggers are now detected by the Imput
class.
Now the event collected and marked as used.
The statements property.serializedObject.Update();
and property.serializedObject.ApplyModifiedProperties();
were removed because they caused the values already pre-defined in the inspector to freeze after being changed
for game mode.
In the method string:MarkedText.ToString();
there was a problem where marking the MarkedText
like FontStyle.Normal
, the text did not appear.
In the Vector2:IGURect.ModifiedPosition
property, the Vector2:IGURect.ModifiedSize
property is used
to perform the calculation instead of the Vector2:IGURect.Size
property as before.
The method
public static IGUContainer GetOrCreateIGUContainer(string name);
creates a new IGUContainer or takes an existing IGUContainer.
Now the methods IGUContainer:IGUContainer.CreateGenericIGUContainer();
is IGUContainer:IGUContainer.CreatePermanentGenericIGUContainer();
use the IGUContainer:IGUContainer.GetOrCreateIGUContainer(string)
method.
In the void:IGUDrawer.OnGUI()
method, Event.current
was used to collect the state of the
triggers
mouse, but the problem occurred when the Event.Use()
method interfered with collecting the state of the
triggers.
mouse which was resolved using the bool:Event.PopEvent(Event)
method.
Now the CobilasResolutions
class is MonoBehaviour.
When removing an IGUContainer
object it was not removed from the OnIGU event.
- Released to GitHub
- Released to GitHub