纳金网

标题: 如何用梯形作按钮? [打印本页]

作者: 比巴卜    时间: 2013-4-15 17:39
标题: 如何用梯形作按钮?
现在我想用GUItexture来制作游戏按钮,但是如果我的按钮是不规则图形,如圆形,梯形,那么调用OnMouseEnter这些方法的时候,在透明的地方就已经触发了这个按钮,请问有什么办法解决  


作者: 比巴卜    时间: 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,那么该点就在这条直线上,你判断点在直线的左右也可以,只是我个人习惯判断点在直线的上下,总之,最后每条线都判断过了就可以了。
不知道说明白了没有,希望能对你用帮助。




欢迎光临 纳金网 (http://wwww.narkii.com/club/) Powered by Discuz! X2.5