查找区域是否包含特定的Vector3

时间:2017-01-31 15:23:52

标签: c# unity3d

我目前正在开发一款运行在Unity引擎上的游戏模块。 mod几乎准备就绪,但我的Area类有些问题。 它表示一个矩形区域,它由两个对角点构成。 An Image

有问题的部分是Contains(Vector3)方法,它不起作用。

   public class Area
   {
    public Vector3 A;
    public Vector3 B;

    public Area(Vector3 A, Vector3 B)
    {
        this.A = A;
        this.B = B;
    }

    public bool Contains(Vector3 player)
    {
        return Vector3.Distance(A, B) >= Vector3.Distance(player,  A) 
          && Vector3.Distance(A, B) >= Vector3.Distance(player, B);
    }
}

有人可以告诉我如何修复Contains方法吗?我错过了什么吗? 顺便说一句:Althogh我正在使用Vector3,即时通讯谈论2D空间!

1 个答案:

答案 0 :(得分:0)

这不是最好的方法,但它有效!

public bool Contains(Vector3 player)
{
    float tax, tay, tbx, tby;
    if(a.x > b.x) { tax = a.x; tbx = b.x; } else { tax = b.x; tbx = a.x; }
    if(a.y > b.y) { tay = a.y; tby = b.y; } else { tay = b.y; tby = a.y; }
    return (player.x < tax && player.x > tbx && player.y < tay && player.y > tby)
}