UIに遮られるクリック操作

2020/09/07
Unity
Camera
Raycast

Unityの環境でオブジェクトをポインター操作するときに、UIに遮られるようにする。

環境

  • Unity 2020.1.3f1

実装

  1. クリック対象オブジェクトの親オブジェクト(直接の親でなくてもいい)にEventSystemをアタッチ
  2. Rayの発生源のカメラにPhisics2DRaycasterをアタッチ
  3. 対象オブジェクトに下記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の継承クラスをアタッチすれば同様

© 2019-2021 hassakulab.com, built with Gatsby