【UGUI】不規則圖片觸發範圍修改

NGUI有boxcollider可以自己調整觸發的範圍
但UGUI由於不是用boxcollider來觸發的,所以要修改也要有另外個方法

基本上用雨松的方法就行了-->連結在此

但找到另外一種方法,可以少寫比較多的代碼,但比較不靈活(?,沒辦法自己控制想要的範圍

首先有這麼一張圖,做成UGUI的按鈕的話,透明的地方也會被觸發到

而今天我想消除透明的地方,只有有顏色的地方才能觸發


先把匯入的圖檔先調一下,調成可讀可寫的


然後+入一個腳本
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class UGUI_Button_alpha : MonoBehaviour {

    public Image image;
    public float threshold = 0.5f;
    
    void Start () {
        image.eventAlphaThreshold = threshold;
    }
    
}

原理其實Unity API裡面寫得很清楚了

讀取Image的eventAlphaThreshold值,來判斷圖片的Alpha值(所以要把圖片設定為可讀可寫)

1的話就是總是會通過,調低就會忽略透明度,所以到最後點擊圖片才會響應。

Image就放你想套用的那張圖片,然後再調一下threshold 到你滿意的值就好

Share:
Read More

[Unity] NGUI與UGUI分別如何攔截事件


由於常常會發生點擊了介面,遊戲內的物件也會被觸發的關係
所以會用到攔截事件,而NGUI的方面比較簡單,只要添加

if (UICamera.isOverUI)
    return;

當我們在射線檢測的時候,如果點擊到UI就不會發生反應了


UGUI方面的話則是

#if IPHONE || ANDROID
            if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
            return;
#else
            if (EventSystem.current.IsPointerOverGameObject())
                return;
#endif

由於要判斷平台,所以比較長
下面那句則是PC使用的
Share:
Read More