Change Logs
[2.0.1] 2025-0x-xx
Added
- Added
SizeType.None
.
Changed
- Refactored
CustomDemo
. - Modified
ButtonStyleDemo
. - Changed the initial window display in
ManualWindow
. - Added missing
ScaleFactor
multiplications.
Fixed
- Corrected an incorrect comment in
CharInfosHelper.CalcXAdvance()
. - Corrected instances where an incorrect
ScaleFactor
was applied. - Fixed a bug where
ScaleFactor
was being multiplied twice inGui.NextTextWidth()
. - Fixed a bug where
ScrollDemo
could behave incorrectly whenScaleFactor
was set to a value other than 1. - Fixed incorrect build results when
isValid
was set tofalse
inILayoutBuilder<TNextBuilder, TRects>.Fixed()
, etc. - Fixed a bug where border colors were not linearly transformed.
[2.0.0] 2025-07-03
In a nutshell, here's a summary:
- Anti-aliasing support.
- Enabled drawing of rounded corners and borders for Widgets such as Buttons.
- Migrated several Widgets to RimGui Extensions.
- Numerous other feature additions, bug fixes, and usability improvements.
Added
- Added support for setting the frame color during press in
RadioButtonWidget
- Added support for setting the frame color during press in
CheckBoxWidget
- Added
CanInteract()
method toContext
as a replacement for the removedIsValidPointerIn()
- Added
BeginVertical()
andBeginHorizontal()
methods toContext
for consistency withBeginAxis()
- Added
BeginIndent()
andEndIndent()
methods toContext
to match naming with other scope methods - Added
IEquatable<Padding>
implementation for thePadding
struct - Added
SliderStyle.TrackThicknesses
- Moved
AdvanceFixedScrollItem()
fromGui
toContext
to maintain separation between layout and drawing logic - Added
InteractiveItemStyle.HoveredColors
- Added
Context.IsWindowInteractive()
method - Implemented anti-aliasing support with
Shaper.AddLineAA()
,AddClosedLineAA()
, andAddConvexPolygonAA()
- Allowed setting the selected mark color in
RadioButtonWidget
- Made
Gui.BeginFixedScroll()
allocation-free - Introduced
ColorPreviewStyle
and addedStyle.ColorPreview
- Added
Gui.BeginInteractiveItem()
andGui.EndInteractiveItem()
- Added
Context.MarkLastDropTarget()
method - Added parameterless overload for
Gui.CustomDelegate()
Changed
- Reordered the constructor and fields of
HsvColor
to follow the orderh, s, v, a
- Renamed
CompositeScope
toCompositeWidgetScope
- Renamed all
IsXXXThisFrame()
methods such asIsLastPressedThisFrame()
toWasXXXThisFrame()
for accuracy - Removed the
Is
prefix fromWidgetStatusFlags.IsHovered
andIsPressed
- Updated button behavior to properly handle click events
- Renamed
IReadOnlyKeyContext
toIReadOnlyKeysContext
- Renamed
IInputContext.KeyContext
toKeys
- Improved
Gui.SlidePad()
to ensureWasLastPressed()
and similar methods return correct values - Modified
Gui.FocusedInputText()
to accept initial text asReadOnlySpan<char>
- Changed the slider handle shape to a circle
- Renamed
SliderStyle.HandleHalfThicknesses
toHandleRadiuses
- Removed
Gui.LayoutBuilder
and moved its functionality toContext
- Changed the return value of
Gui.InputText()
toInputTextResult
- Removed
Gui.HorizontalGradient()
as it was a redundant helper forGui.Gradient()
- Updated
ToggleButton
to useToggleButtonStyle
instead ofButtonStyle
- Renamed
Context.GetTargetWindowId()
toGetInteractableWindowId()
- Removed
GuiMeshMaterials
- Made the check mark in
CheckBoxWidget
thicker - Removed
GuiAssets.PerfectCircleSprite
as it is no longer used - Updated
ButtonWidget
,ToggleButtonWidget
, andCheckBoxWidget
to render based onBorderWidth
,BorderColor
, andCornerRadius
- Renamed
CheckBoxStyle.Thicknesses
toBorderThicknesses
- Modified
ScrollBarWidget
to render usingCornerRadius
- Added spacing between the scrollbar and the scrollable area
- Enabled anti-aliasing for
FoldoutTriangleWidget
- Refined foldout widget behavior
- Unified field naming to PascalCase for all
public static readonly
fields - Implemented implicit conversions between
Gridrand.Contracts.Vector3
/Vector3Int
and UnityEngine's types - Renamed
Vector2.UnitPerpendicular()
toUnitNormal()
- Optimized
IFigure.IsInside()
to avoid GC allocations - Fixed a typo in
Vector2.GetSqrMagnitute()
by renaming it toGetSqrMagnitude()
- Updated
Gui.CustomDelegate()
to supportNextWidth()
,NextHeight()
, andNextRect()
- Removed
FixedSizeWidgetStyle
due to unclear extension pattern - Removed
RadioButtonsWidget
which lacked support for flexible layout and multiple selections with[Flags]
- Added demonstration of flexible radio button usage in
RadioButtonDemo
- Implemented
IEquatable<Color32>
forColor32
- Implemented
IEquatable<Color>
forColor
- Updated
Gui.BeginFixedScroll()
to use style-based configuration instead of fixed parameters for height - Renamed
ScrollStyle
toDynamicScrollStyle
- Renamed
ScrollWidget
toDynamicScrollWidget
- Renamed
Shaper.AddHsv()
toAddSVPanel()
- Renamed
Gui.Color()
toGui.ColorPreview()
to reflect that it shows a checkerboard background when the color is transparent - Removed
Style.WidgetRects
andWidgetRectStack
; useGui.NextRect()
instead - Simplified internal widget size stacks:
WidgetWidthStack
,WidgetHeightStack
, andSizeStack
- Updated
ScrollView
exception messages for clarity - Changed
Style.EnabledStack
to check only the topmost value instead of requiring all to betrue
- Introduced
Style.EnabledStack.IsAllEnabled
for checking full stack status - Renamed
Style.IsEnable
toIsEnabled
- Renamed
DefaultValue
toDefault
in all scope stack types (DefaultScopeStack<T>
,ScaledFloatScopeStack
,ScaledPaddingScopeStack
) - Renamed
ILayoutBuilder<T>.BuildRemainHorizontal()
/Vertical()
toBuildRemainingHorizontal()
/Vertical()
- Updated
WidgetInfo.ToString()
format - Modified
Gui.InputText()
to always return the displayed text, not only when it changes - Removed
Context.GetHorizontalRemainRect()
due to misleading name and behavior - Renamed
Context.RemainingWidthInRegion()
/Height toGetRemainingWidth()
/GetRemainingHeight()
- Renamed
Context.GetRegionCurrentRect()
toGetCurrentRect()
- Removed redundant
GetRemainRect()
andGetCurrentRegionRect()
fromContext
- Renamed
Context.GetCurrentRegionWidth()
/Height()
toGetCurrentWidth()
/GetCurrentHeight()
- Simplified the API for fixed-size scrolling
- Split demos for
RadioButton
andToggleButton
fromButtonDemo
- Implemented a tab-like example using
ToggleButton
inToggleButtonDemo
- Removed
TabSetWidget
in favor of flexible usage ofToggleButton
- Made
InputTextStyle.UnderLineColors
configurable viaStyleSettings
- Added
Context.SetNeedNextSpace()
for spacing control - Brightened default widget colors for better visibility over boxes
- Adjusted underline color of input text to be slightly darker and style-driven
- Updated manual font padding
- Brightened default text colors
- Renamed
IRectDynamicBuilder
toIDynamicLayoutBuilder
- Enabled loop-based flexible layout building in
IDynamicLayoutBuilder
- Changed
Context.AllocateRect()
so that anull
width uses the remaining region width - Improved the
AxisDemo
- Renamed
Int32Parser
toIntParser
, andUInt32Parser
toUIntParser
- Renamed
Context.TrySetDropTarget()
toMarkDropTarget()
- Removed
Context.TryDragDropLast()
and split intoMarkLastDropTarget()
andTryDragLast()
- Made
Gui.InteractiveItem()
accept a default value forisSelected
- Darkened
HoveredColor
slightly for better visibility - Made
DragDropDemo
easier to understand - Enabled
StyleSettingsDrawer
to modifyScaleFactor
- Standardized naming by removing the plural
s
from properties likeXXXColors
inStyleSettingsDrawer
- Improved exception log message in
Dispose()
to clarify that the root cause may appear earlier in the log - Allowed setting of normal color in
InteractiveItemWidget
- Updated
InputTextWidget
to disable interaction properly based on style - Fixed broken link to Unity Discussions in
RimGuiWindow
Fixed
- Fixed bug in
SpriteButton
where click behavior was not handled correctly - Enabled
Gui.NextHeight()
,NextWidth()
, andNextRect()
support inMultiLineTexWidget
- Fixed incorrect
WasLastPressed()
behavior after usingGui.SlidePad()
- Fixed bug in
HsvColor
constructor - Fixed issue in
Gui.Custom()
whereNextRect()
had no effect unlessshouldAllocateInRegion
wastrue
- Improved anti-aliasing rendering in
RadioButtonWidget
- Fixed display issues in
FoldoutButton
- Fixed
Context.TryDragLast()
incorrectly returning true for a mismatched group key during drag - Fixed interaction disabling logic in
InputTextWidget
Example of Fixed-size scroll modification
version 1.2.0
var handler = Gui.CreateScrollHandler(Ctx.GetRemainRect().height, 100, Style.StandardHeight, 0f);
while (handler.Next())
{
Gui.Text(handler.CurrentIndex.ToString());
}
version 2.0.0
using (Gui.BeginFixedScroll(Ctx.GetRemainRect().height, 100, Style.StandardHeight, 0f))
{
while (Gui.AdvanceFixedScrollItem())
{
Gui.Text($"{Ctx.GetFixedScrollIndex()}");
}
}
[1.2.0] 2025-05-08
Added
LabelInput()
support forVector3
andVector4
.LabelInput()
support forVector2Int
andVector3Int
.LabelInput()
support forRect
,RectInt
,Bounds
, andBoundsInt
.- Implicit conversion operators for
UnityEngine.Vector4
,Bounds
, andBoundsInt
. LabelSliderNumeric<TNumeric>
for generic numeric sliders.IEquatable
implementations forRect
,RectInt
,Bounds
, andBoundsInt
.- Button linking to Unity Discussions in
RimGuiWindow
.
Changed
- Refactored
LabelInputInt()
and similar methods to removemin
/max
parameters; numeric input is now handled viaLabelInputNumeric()
. - Renamed
SliderInputWidget
toLabelSliderWidget
. LabelInput()
now returns the result value instead of abool
indicating change.- Renamed
InputNumericWidget
toLabelInputNumericWidget
. - Renamed
InputStringWidget
toLabelInputStringWidget
. Gui.HorizontalDragText()
(nowGui.DraggableTextNumeric()
) returns the modified value.- Renamed
Gui.LabelInputColor()
toLabelInput()
. - Renamed
Gui.Slider<T>()
for numeric types toSliderNumeric()
. - Renamed
HorizontalDragText
toDraggableTextNumeric
. - Extended
Gui.LabelText()
to support all numeric types (TNumeric
). - Renamed
ScopeRanges
toNumericRanges
. - Refactored
ManualWindow
. - Refactored
CustomDemo
. - Renamed
Time.FrameTime
toTotalTime
.
Fixed
- Adjusted drag scaling behavior for
Label
dragging to improve control sensitivity. - Fixed an error when URP15 or higher
[1.1.0] 2025-05-02
Added
- Implemented setting to make Foldouts open by default.
- Implemented methods such as
LabelInputUShort()
. - Implemented
Shaper.AddTriangle()
. - Implemented
Context.IsInputEnabled()
. - Implemented
Context.EnableInput()
.
Changed
- Simplified code around
ITreeNodeHandler
. - Changed exception messages.
- Refactored
CustomDemo
. - Renamed
LayoutDemo
toLayoutBuilderDemo
. - Renamed
BoxDemo
toBoxAndFrameDemo
. - Renamed
Style.RawStandardHeight
and made it configurable. - Adjusted values in
StyleDemo
. - Adjusted style values for
Heading
. - Added space between
Slider
andInputText
. - Moved padding settings from the base class to each individual class in
Style
.
Fixed
- Fixed mistakes in
TreeDemo
. - Fixed bug in
Gui.LabelInputBool()
. - Fixed bug where handle in
ColorPicker
andHueBar
could go below the bottom edge. - Removed
OverrideFoldoutStatus
. - Fixed issue where the "G" in RGB was cut off.
- Fixed issue where WebGL build could not be operated on mobile.
- Fixed incorrect multiplication of
ScaleFactor
in the manual.