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联动的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle SQL 的主键上声明附加索引时会发生啥?

JS数组排序

索引之见解

phpcms网站建设中,联动菜单怎样读取?联动菜单菜单调用方法

ComboGrid二级联动以及给二级联动赋默认值

ios 两个 TableView 之间的联动, TableView 与 CollectionView 之间的联动