Unity——2D地铁路线图单个线条的鼠标交互事件

如图:

如果想要对图中的每条线做鼠标点击交互,有什么办法吗?(如果对每条线保存成一个图片做鼠标点击交互,不就重叠没办法做了?

解决办法:转载自  Unity UGUI 不规则按钮 响应区域重叠的解决办法_Vitens的博客-CSDN博客

 问题归类为—— Unity UGUI 不规则按钮 响应区域重叠的解决办法

Image组件已经封装好了一个属性alphaHitTestMinimumThreshold:

能够被识别点击生效的alpha的最小值,就是指点击到的地方像素点的alpha值如果低于这个阈值,那么认为点击无效,如点击到下列左图中这块区域,因为这里用到的图片透明度都为0,如果这个阈值设为0.2f(比较小的),那么本次的点击事件将会向下一层传递,当前层不响应,直到发现点击到的地方透明度是大于这个阈值的再进行处理。该示例中这块黄色区域无响应。

   

 

点击单条线段不会互相干扰:

 

 代码示例: 

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
 
public class ClickTest : MonoBehaviour,IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log(gameObject.name);
    }
 
    // Use this for initialization
    void Start () {
        GetComponent<Image>().alphaHitTestMinimumThreshold = 0.1f;
    }
	
	// Update is called once per frame
	void Update () {
		
	}
 
}

 摘自: Unity UGUI 不规则按钮 响应区域重叠的解决办法_Vitens的博客-CSDN博客

 如果想要实现鼠标悬停在该线段上,产生的高亮效果,可以不用插件,直接给该图片赋上Button组件即可:

 

 修改“Highlighted Color”等属性,表示鼠标悬浮在线段上面的高亮颜色,效果如下:

 

posted @ 2022-10-09 16:29  kayadessert  阅读(188)  评论(0)    收藏  举报