试图改进几个if语句

时间:2015-09-29 20:23:57

标签: c# performance if-statement unity3d

我试图找到一种更优雅的方式来减少我的if语句,我现在所拥有的有点凌乱,我认为可以做得更好,有什么建议吗?

        if(ship.position.y >= transform.position.y + yBound)
        {
            hitBounds = true;
        }
        if(ship.position.y <= transform.position.y - yBound)
        {
            hitBounds = true;
        }
        if(ship.position.x >= transform.position.x + xBound)
        {
            hitBounds = true;
        }
        if(ship.position.x <= transform.position.x - xBound)
        {
            hitBounds = true;
        }

谢谢你的时间!

更新

if(Mathf.Abs(ship.position.x - transform.position.x) >= xBound || Mathf.Abs(ship.position.y - transform.position.y) >= yBound)
{
    hitBounds = true;
}
做了一个款待,感谢一百万!

3 个答案:

答案 0 :(得分:4)

hitBounds = Math.Abs(ship.position.x - transform.position.x) >= xBound || Math.Abs(ship.position.y - transform.position.y) >= yBound;

答案 1 :(得分:0)

如果没有if声明怎么样?

 hitBounds = (ship.position.y >= transform.position.y + yBound) || (ship.position.y <= transform.position.y - yBound) || (ship.position.x >= transform.position.x + xBound) || (ship.position.x <= transform.position.x - xBound);

答案 2 :(得分:0)

因为在所有情况下,hitBounds都是“true”。 如果使用||,您可以使用一个(或)条件。 我希望所有这些条件都是独立的。如果他们是依赖使用和他们。 祝你好运!