public override void OnUpdate() { ArcenSetting setting = GetSettingForController(this); if (setting == null) { return; } float currentValue = setting.TempValue_Float; float range = setting.MaxFloatValue - setting.MinFloatValue; if (range == 0) { range = 1; } float currentPortion = (currentValue - setting.MinFloatValue) / range; ArcenUI_Slider elementAsType = (ArcenUI_Slider)Element; elementAsType.ReferenceSlider.value = currentPortion; }
public override void PopulateFreeFormControls(ArcenUI_SetOfCreateElementDirectives Set) { Rect scrollbarRect = ArcenRectangle.CreateUnityRect(mainAreaBounds.x - 2, mainAreaBounds.y + 2, 2, mainAreaBounds.height - 5); AddVerticalSlider(Set, typeof(sScrollbar), 0, scrollbarRect); int rowsToShow = GetMaxRowsToShow(); int rowCount = ArcenSettingTable.Instance.VisibleRows.Count; if (sScrollbar.Instance != null) { int range = rowCount - rowsToShow; if (range <= 0) { startingTableIndex = 0; } else { ArcenUI_Slider slider = (ArcenUI_Slider)sScrollbar.Instance.Element; startingTableIndex = Mathf.FloorToInt(range * slider.ReferenceSlider.value); } } float runningY = 3; Rect headerTextBounds = ArcenRectangle.CreateUnityRect(mainAreaBounds.xMin, runningY, 15, headerRowHeight); AddText(Set, typeof(tHeader), 0, headerTextBounds); Rect closeButtonBounds = ArcenRectangle.CreateUnityRect(headerTextBounds.xMax + 2, runningY, 10, headerRowHeight); AddButton(Set, typeof(bCancel), 0, closeButtonBounds); Rect saveButtonBounds = ArcenRectangle.CreateUnityRect(closeButtonBounds.xMax + 2, runningY, 10, headerRowHeight); AddButton(Set, typeof(bSave), 0, saveButtonBounds); Rect resetButtonBounds = ArcenRectangle.CreateUnityRect(saveButtonBounds.xMax + 2, runningY, 10, headerRowHeight); AddButton(Set, typeof(bReset), 0, resetButtonBounds); runningY += headerRowHeight; int rowsLeft = rowCount - startingTableIndex; rowsToShow = Math.Min(rowsLeft, rowsToShow); for (int i = 0; i < rowsToShow; i++) { ArcenSetting setting = ArcenSettingTable.Instance.VisibleRows[startingTableIndex + i]; Rect nameBounds = ArcenRectangle.CreateUnityRect(mainAreaBounds.xMin, runningY, 50, rowHeight); AddText(Set, typeof(tSettingName), i, nameBounds); Rect valueSettingControlBounds = ArcenRectangle.CreateUnityRect(nameBounds.xMax, runningY, 15, rowHeight); switch (setting.Type) { case ArcenSettingType.BoolToggle: AddButton(Set, typeof(bToggle), i, valueSettingControlBounds); break; case ArcenSettingType.IntTextbox: AddInput(Set, typeof(iIntInput), i, valueSettingControlBounds); break; case ArcenSettingType.FloatSlider: AddHorizontalSlider(Set, typeof(sFloatSlider), i, valueSettingControlBounds); break; case ArcenSettingType.IntDropdown: AddDropdown(Set, typeof(dIntDropdown), i, valueSettingControlBounds); break; } Rect valueDescriptionBounds = ArcenRectangle.CreateUnityRect(valueSettingControlBounds.xMax, runningY, 30, rowHeight); AddText(Set, typeof(tSettingValueDescription), i, valueDescriptionBounds); runningY += rowHeight; } }
public virtual void DoAnyCustomSliderStuff(ArcenUI_Slider Slider) { }