Unity は自動的にキャンバスをクリックします

Unity は自動的にキャンバスをクリックします

序文

マウスを必要としない項目に遭遇した場合、次のメソッドを使用して UI ボタン​​ イベントを直接トリガーできます。

ソースコード

押すと、QUI の下の対応する位置でボタン イベントをトリガーできます。

GraphicRaycasterヒント:コンポーネントを備えたCanvasデバイスにマウントする必要があります

public class TestClickCanvas: MonoBehaviour
{
    
    
    GraphicRaycaster raycaster;
    
    void Start()
    {
    
    
        raycaster = GetComponent<GraphicRaycaster> ();
    }
    
	private void Update()
    {
    
    
        if (Input.GetKeyDown(KeyCode.Q))
        {
    
    
            PointerEventData pointerData = new PointerEventData(EventSystem.current);
            List<RaycastResult> results = new List<RaycastResult>();
            //想要点击的位置
            pointerData.position = new Vector2(0,1080);
            raycaster.Raycast(pointerData, results);
            foreach (RaycastResult result in results)
            {
    
    
                Debug.Log("Hit " + result.gameObject.name);
                if (result.gameObject.GetComponent<Button>()!=null)
                {
    
    
                	//触发事件
                    result.gameObject.GetComponent<Button>().onClick.Invoke();
                }
            }
        }
    }
}

ありがたい

キャンバス上のクリックの検出 https://answers.unity.com/questions/1526663/detect-click-on-canvas.html

おすすめ

転載: blog.csdn.net/a71468293a/article/details/129273185