UIに遮られるクリック操作
2020/09/07
Unity
Camera
Raycast
Unityの環境でオブジェクトをポインター操作するときに、UIに遮られるようにする。
環境
- Unity 2020.1.3f1
実装
- クリック対象オブジェクトの親オブジェクト(直接の親でなくてもいい)にEventSystemをアタッチ
- Rayの発生源のカメラにPhisics2DRaycasterをアタッチ
- 対象オブジェクトに下記RaycastTargetとコライダーをアタッチ
/// <summary>
/// EventSystemのhierarchy下においてEventSystmのRaycastを受け取るオブジェクト
/// </summary>
[RequireComponent(typeof(Collider2D))]
public class RaycastTarget : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("on click");
}
}
もちろんClick以外のEventHandlerでも使える。3Dの場合は Physics2DRaycasterをPhysicsRaycasterに、対象オブジェクトにColliderの継承クラスをアタッチすれば同様