【发布时间】:2017-01-02 14:21:38
【问题描述】:
我有 4 个变量可以链接,让用户链接在一起以便快速调整,如下所示:
这就是我使链接 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;
问题是这只能按照它的编码顺序工作。
例如,如果我先比较topLeft和bottomLeft,然后比较topLeft和topRight,那么如果用户更改topRight,那么bottomLeft将不会更新,除非我比较topLeft和bottomLeft 再次。
有没有更优雅的方法来做到这一点?
【问题讨论】:
-
根据您的屏幕截图,用户可以将其中任何一个链接在一起吗?就像例如只有前两个和后两个或例如全部?
-
什么时候执行上面的代码?直接在您更改字段时或在持续运行的更新中?
-
我想让用户选择链接他们喜欢的任何一对,比如只有顶部/顶部和底部/左上角/所有 4 个。
-
每当用户编辑文本字段时都会执行代码
-
这些价值观是如何组织的?我认为更新链(或者更确切地说是两个,一个顺时针,一个逆时针)将是要走的路。像
if(isConnectedClockwise) neighbor.UpdateClockwise(newVal)这样的东西是可能的。然后该邻居将检查该值是否已经相同(=停止/返回)或设置它,并检查它是否也有顺时针连接。逆时针方向相同(值检查防止无限循环)。
标签: c# user-interface unity3d user-controls user-input