我目前正在开发一款运行在Unity引擎上的游戏模块。
mod几乎准备就绪,但我的Area
类有些问题。
它表示一个矩形区域,它由两个对角点构成。
有问题的部分是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空间!
答案 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)
}