看图 Button 前面 是一个 Image组件, 并且 Iamge组件的 Raycasttarget 是打开的,
需求是 让左边 的区域 下面的Button 响应点击事件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ssss : MonoBehaviour ,ICanvasRaycastFilter {
public bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera)
{
if (sp.x > Screen.width/2)
{
return true;
}
else
{
return false;
}
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
其实只要继承一个 ICanvasRaycastFilter 接口就可以了
然后左边的 地方下面的 Button 就可以 响应 点击事件了
主动触发点击事件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class sss : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
private void OnGUI()
{
if (GUILayout.Button("DDDDDDDDDD"))
{
Button button = GameObject.Find("Button").GetComponent<Button>();
ExecuteEvents.Execute<IPointerClickHandler>(button.gameObject, new PointerEventData(EventSystem.current), ExecuteEvents.pointerClickHandler);
}
}
public void Shit()
{
Debug.Log("===================================?");
}
}