如何更改4个变量中的任何一个更改3个其他变量?

时间:2016-08-26 02:10:09

标签: c# user-interface unity3d user-controls user-input

我有4个变量可供链接,让用户链接在一起进行快速调整,如下所示:

screenshot

这就是我如何使链接2像这样工作:

bool lockLeft, lockTop, lockRight, lockBottom;

if (lockLeft)
{
    if (radius.topLeft!= oldRadius.topLeft))
        radius.bottomLeft = radius.topLeft;
    if (radius.bottomLeft!= oldRadius.bottomLeft))
        radius.topLeft = radius.
}

//if(lockRight)...similar

oldRadius=radius;

问题是这只能按编码顺序工作。

例如,如果我首先比较topLeftbottomLeft,然后topLefttopRight,那么如果用户更改topRight,那么{{1}我不会更新,除非我再次比较bottomLefttopLeft

有更优雅的方法吗?

2 个答案:

答案 0 :(得分:0)

确保serializedObject.Update();方法

的顶部有OnInspectorGUI()

答案 1 :(得分:0)

尝试2个数组 - 一个值和一个bool,然后你可以在两个方向递归检查值之间的链接。