このガイドは、Unity UI要素とGameObjectsの両方でクリックしてタッチイベントを検出する方法を説明しています。
ui要素のクリックを検出 UI要素(画像、rawimages、ボタンなど)の場合、入力APIの代わりにUnityのイベントシステムを使用します。 適切なイベントインターフェイスをUI要素に実装するスクリプトを添付します。
uiイベントインターフェイス
画像、rawimage、テキストなどの要素の場合:
ボタン:
<code class="language-csharp">public class ClickDetector : MonoBehaviour, IPointerDownHandler, IPointerClickHandler, IPointerUpHandler, IPointerExitHandler, IPointerEnterHandler, IBeginDragHandler, IDragHandler, IEndDragHandler { // Implement event functions (e.g., OnPointerClick, OnPointerDown, etc.) }</code>
ボタンは、イベントを使用してよりシンプルなアプローチを提供します:
onClick
GameObjectsのクリックを検出
<code class="language-csharp">public class ButtonClickDetector : MonoBehaviour { public Button button1; public Button button2; void OnEnable() { button1.onClick.AddListener(() => ButtonClicked(button1)); button2.onClick.AddListener(() => ButtonClicked(button2)); } void ButtonClicked(Button button) { // Your button click handling code here } }</code>3Dまたは2D GameObjectsのクリックを検出するには、メインカメラにa
(3D)または(2Dの場合)を追加します。 次に、UI要素に対して上記と同じイベントインターフェイスを使用できます。 GameObjectにColliderがあることを確認してください イベントシステムのトラブルシューティング
PhysicsRaycaster
Physics2DRaycaster
クリックが登録されていない場合:
イベントシステム:
シーンにイベントシステムが存在することを確認してください。
PhysicsRaycaster
クリック検出をブロックするUI要素が重複することを確認します。Physics2DRaycaster
以上がUI要素とGameObjectsのClick/TouchイベントをUnityで検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。