作者: 比巴卜 时间: 2013-4-15 17:40
我有个可行的方案,自己用过了,分享一下。
我用GUI.DrawTexture来画按钮的。
假设是圆形,我计算鼠标点相对圆形中心的距离是否小于圆的半径,如果小于圆的半径,那么鼠标就在圆内。
假设是多边形的情形,可以考虑把多边形认为是多条直线围合的结果,只要某个点在所有围合多边形的直线靠近多边形的一侧,那么这个点就必然在多边形内(我勒个去的,这话怎么说的这么绕啊),一个点在一条水平线或者竖直线的一侧非常好判断,不说了,如果是斜线,可以以某个点为基准,比如说屏幕左上角的点为基准吧,把鼠标输入转换成相对于这个基准的x和y,先列出围合该多边形的每条斜线的公式,一般类似y = a * x + b这种情形,如果y > a * x + b,那么该点就在这条直线的下方,如果y > a * x + b,那么该点就在这条直线的上方,如果y = a * x + b,那么该点就在这条直线上,你判断点在直线的左右也可以,只是我个人习惯判断点在直线的上下,总之,最后每条线都判断过了就可以了。
不知道说明白了没有,希望能对你用帮助。