unitySlider联动
Posted 程序员茶馆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unitySlider联动相关的知识,希望对你有一定的参考价值。
一.应用背景
最近在公司BigWorld模块开发过程中,需要扩展编辑器,以实现距离相机不同距离显示不同草的功能。这些距离可以通过编辑器面板的EditorGUILayout.Slider来控制,且需要有联动效果,即后一slider的值不小于前一slider的值,拖动slider时会相互影响。
二.设计思路
问题的关键点在于前一slider的值不小于后一slider的值,也就是各slider的值呈递增趋势。因此可以先用一个列表存储拖动某一slider后,各slider的值,然后对该列表按升序排序后,再按序赋给对应slider影响的对象即可。
三.核心源码
using System.Collections.Generic;
using UnityEditor;
public class SliderWindow : EditorWindow
[MenuItem("Test/OpenWindow")]
static void Open()
EditorWindow.GetWindow<SliderWindow>("Slider联动");
private float[] values = new float[5];
private List<float> tempList = new List<float>();
private void OnGUI()
tempList.Clear();
for (var index = 0; index < values.Length; index++)
var value = EditorGUILayout.Slider($"sliderindex", values[index], 0, 1);
tempList.Add(value);
tempList.Sort();
for (var index = 0; index < values.Length; index++)
values[index] = tempList[index];
四.联动效果
以上是关于unitySlider联动的主要内容,如果未能解决你的问题,请参考以下文章