ユーザ用ツール

サイト用ツール

wiki:unity:tips:097

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
wiki:unity:tips:097 [2015/02/08 12:37]
step
wiki:unity:tips:097 [2020/02/10 09:14]
step
ライン 1: ライン 1:
-====== 097 uGUIのボタンとGameObjectが重なっている時のタッチ判定について ====== +[整頓してこちらに移動しました。[https://kazupon.org/?p=5087]]
- +
-uGUIのボタンにSpriteなど他のGameObject重なっている時、両方のタッチ処理に反応してしまうのは都合が悪いので、 +
-uGUIのUIオブジェクトが何かし重なっている時は、その他のタッチ処理を無効にして通らない様にしてみす。 +
-基本的には、EventSystem.current.IsPointerOverGameObject()を使えば良いです。 +
- +
-<code csharp>​ +
-using UnityEngine.EventSystems;​ +
- +
-//​------------------------------------------------------------- +
-// EventSystemのGameObjectにマウスオーバーしているか? +
-//​------------------------------------------------------------- +
-public bool IsPointerOverGameObject() +
-+
-    EventSystem current = EventSystem.current;​ +
-    if (current != null) +
-    { +
-        if (current.IsPointerOverGameObject()) +
-        { +
-            return true; +
-        } +
- +
-        foreach (Touch t in Input.touches) +
-        { +
-            if (current.IsPointerOverGameObject(t.fingerId)) +
-            { +
-                return true; +
-            } +
-        } +
-    } +
-    return false; +
-+
-</​code>​ +
-  +
-使い方はシンプルに +
-<code csharp>​ +
-//​------------------------------------------------------------- +
-//! タッチしたか. +
-//------------------------------------------------------------- +
-public bool IsTouchPress() +
-+
-    if (Input.GetMouseButtonDown(0)) +
-    { +
-        if (!IsPointerOverGameObject()) +
-        { +
-        return true; +
-        } +
-    } +
-    return false; +
-+
-</code> +
- +
-こんな感じでタッチ処理をラップしてIsTouchPressを使う様にしてあげれば良いです。 +
Permalink wiki/unity/tips/097.txt · 最終更新: 2020/02/10 09:14 by step

oeffentlich