【发布时间】:2018-06-06 20:07:26
【问题描述】:
我有 2 组,每组 3 个条件。 设 a,b,c 为一组条件,x,y,z 为另一组。我需要评估以下内容
if(a && x)
.....
else if(a && y)
.....
else if(a && z)
.....
以同样的方式 3 个条件与 b 和 3 与 c。
在不编写所有组合的情况下评估条件的最佳方法是什么?
更新:
我正在使用 Unity 制作游戏。条件 a,b,c 检查球员的 x 位置与球的位置相比是否在一定范围内,条件 x,y,z 对 y 位置。基于正确的条件(从组合 ax、ay、az、bx、by、bz、cx、cy、cz)选择一个动画状态(共 9 个)。所以每个条件都会产生不同的结果。
更新: 我最终制作了两个函数来评估两组条件,每个函数都返回一个枚举,在该枚举上执行按位或以获得最终状态。
【问题讨论】:
-
条件是否总是循环通过
x、y、zfora、b和c?我在想一些涉及一系列 lambda 表达式的笨拙。比if/else更难阅读和维护。通常是一个坏主意,除非有超过 9 种组合以及它们之间的代码模式。 -
我还认为这取决于将在各种条件下执行的操作。如果正在执行的操作之间没有相似之处,为什么不写出所有的组合呢?如果您可以使用相似之处来减少组合,则 OP 需要在问题中添加更多详细信息。
-
我同意之前的评论,这个问题目前无法回答。如果每个组合都需要特定的代码,那么必须写出所有案例。如果有共同点,它应该是问题的一部分。在提供更多信息之前投票结束。
标签: c# unity3d conditional