1
1
这看起来像是一个简单的问题,只显示完整的地图图像,并将光标坐标移动到该图像上对应的遮罩图像坐标。你可以在这里做两件事。将遮罩图像保持黑白,并将每个区域的地图与某些内容关联,这些内容定义了悬停该区域时要执行的操作。或者,将遮罩更改为多色图像,然后简单地将每个颜色代码映射到定义悬停区域时要执行的操作的内容。我个人会选择后者,因为它要简单得多,而且您可以使用大约1600万个可用区域(给定24位颜色)。 给定一个简单的映射类型:
您可以通过将源图像的鼠标坐标转换为多色区域地图图像的相应坐标来查找映射区域,通过颜色查找ZoneMap条目,并调用其OnHover操作:
我知道这很粗糙。如果我有更多关于你想在某个特定区域的悬停状态下做什么的信息,我可能会提供更多。 |
2
0
如果要将图像加载到位图对象中,可以使用bitmap.getPixel()检查其alpha值(0完全透明,255完全不透明),从而检查像素是否透明。 如果您只需要对每个透明像素做一些事情,我想不需要在单独的对象中创建一个选择。只要迭代像素,如果一个是透明的,那么就做你必须做的。 如果您确实需要创建一个选择,那么您可以使用与原始图像大小相同的每像素1位位图。白色代表选定区域,黑色代表未选定区域(或与之相反,您的选择)。 见: http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.aspx |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |