UnityのEventTriggerに関する質問です

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Fuji
記事: 7
登録日時: 9年前

UnityのEventTriggerに関する質問です

#1

投稿記事 by Fuji » 9年前

Unityで、2DスプライトにEventTriggerを使ってマウス・クリックによるスクリプトの実行を実装したいのですが、うまく動きません。同スクリプトはUIのButtonのOnclickで実装すると動きます。EventTriggerでの実装は、PointerDownを使い、Canvasに付加したスクリプトを設定しています。

hide

Re: UnityのEventTriggerに関する質問です

#2

投稿記事 by hide » 9年前

そうですか。ここはブログではないので、宜しくお願いします。

Fuji
記事: 7
登録日時: 9年前

Re: UnityのEventTriggerに関する質問です

#3

投稿記事 by Fuji » 9年前

言葉たらずで、失礼しました。
「Unityで、2DスプライトにEventTriggerを使ってマウス・クリックによるスクリプトの実行を実装したいのですが、うまく動きません。」
対応方法について知見のある方がございましたら、ぜひ、ご教示いただければと思います。よろしくお願いいたします。

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

Re: UnityのEventTriggerに関する質問です

#4

投稿記事 by YuO » 9年前

上部にある,「フォーラムルール」の「質問は具体的にする」の項目に一度目を通してみてください。
Fujiさんが書かれている内容だけだと,「思ったように動くように,正しく実装すればよいのではないか」以外に回答できる人はいないと思いますよ。
回答者にとって質問内容が具体的であれば具体的な回答がつきやすく,曖昧な内容であれば曖昧な回答がつきやすいです。

回答者にとって具体的な質問の書き方がわからないのであれば,同じく「フォーラムルール」中にある,「テンプレ」に従って記述してみてください。

Fuji
記事: 7
登録日時: 9年前

Re: UnityのEventTriggerに関する質問です

#5

投稿記事 by Fuji » 9年前

Yuoさん、アドバイスありがとうございました。アドバイスに従って、以下、作成しました。
また、何かお気づきのことがあれば、アドバイスいただければ幸いです。
Unityの質問が本掲示板には不適切かも知れませんが、知識のおありの方が
いらっしゃいましたら、よろしくお願いします。
1. 自分は今何がしたくて
・Unityの2Dプロジェクトで2Dイメージ(Sprite)をマウスでクリックしたとき、
実装したC#のスクリプトが動く機能が必要になりました。
2. どう取り組んで(作ったプログラムはどれで
・機能検証のために、開発プログラムとは別に、検証用のUnityの2Dプロジェクトを
作成しました。作成した手順は次の通りです。
①新しい2Dプロジェクトを作成します。
②2Dイメージとクリック音のためのサウンドデータをImportします。
③2DイメージをSceneにセットします。このとき、自動的にCanvasがセットされます。
④CanvasにAdd ComponentでAudio Sourceを付加し、Audio Clipに②で
 Importしたクリック音をセットしておきます。
⑤比較のためにUIのButtonをCreateしてSceneにセットします。
⑥実行画面(Game)で2Dイメージが適当なサイズで現れるように、AssetのInspectorの
  Pixels Per Unitを100にして縮小し、位置も調整しています。CanvasのRender Mode
  はデフォルトのScreen Space Overlayのままです。
⑦2DイメージにAdd ComponentでEvent Triggerを付加し、Event Typeの
  Pointer Downを選択します。
⑧ScriptをもつObjectとしてCanvasを選定して、FunctionにAudio Suorce・Play()を
  セットします。AudioClipに取込んだサウンドデータをセットします。
⑨ButtonのOn Click()にも⑦と同様にして、Audio Suorce・Play()をセットします。
3. どのようなエラーやトラブルで困っていて
・2項で作成したプログラムを実行すると、Buttonはマウスクリックでクリック音が鳴ります。
 それに反して、2Dイメージのほうは、クリック音がなりません。EnevtTriggerが機能して
 いないように思われます。
4. 自分は何が解らないのか、知りたいのか
・2Dイメージに付与したEvent Triggerが機能するようにしたいのですが、そのために
デフォルトの設定を変更しなければならないところがあるのでしょうか?
・Unityの初心者で基本的な知識が不足してるのだと思います。⑥のCanvasの座標軸と
2Dイメージの座標軸が違ってくることを、Unityの入門書で知ったのですが、このことが
今回の機能を実現するうえで影響しているのか、どう対応すべきなのかはまでは理解できて
いません。
5. 今のCの知識はどの程度なのか
・Unityは使いだして半年、Cはかなり以前、1年程度の開発経験があります。現在、
ScriptはC#で開発しています。

Fuji
記事: 7
登録日時: 9年前

Re: UnityのEventTriggerに関する質問です

#6

投稿記事 by Fuji » 9年前

記述内容に誤りがありました。②に”自動的にCanvasがセットされます”と記載しましたが、
Canvasが自動的にセットされるのは、⑤のUIのButtonをセットしたときです。
失礼しました。以下、作成手順の修正版です。
1. 自分は今何がしたくて
・Unityの2Dプロジェクトで2Dイメージ(Sprite)をマウスでクリックしたとき、
実装したC#のスクリプトが動く機能が必要になりました。
2. どう取り組んで(作ったプログラムはどれで
・機能検証のために、開発プログラムとは別に、検証用のUnityの2Dプロジェクトを
作成しました。作成した手順は次の通りです。
①新しい2Dプロジェクトを作成します。
②2Dイメージとクリック音のためのサウンドデータをImportします。
③2DイメージをSceneにセットします。
④CanvasにAdd ComponentでAudio Sourceを付加し、Audio Clipに②で
 Importしたクリック音をセットしておきます。
⑤比較のためにUIのButtonをCreateしてSceneにセットします。このとき、Canvasが自動的に
 セットされます。
⑥実行画面(Game)で2Dイメージが適当なサイズで現れるように、AssetのInspectorの
  Pixels Per Unitを100にして縮小し、位置も調整しています。CanvasのRender Mode
  はデフォルトのScreen Space Overlayのままです。
⑦2DイメージにAdd ComponentでEvent Triggerを付加し、Event Typeの
  Pointer Downを選択します。
⑧ScriptをもつObjectとしてCanvasを選定して、FunctionにAudio Suorce・Play()を
  セットします。AudioClipに取込んだサウンドデータをセットします。
⑨ButtonのOn Click()にも⑦と同様にして、Audio Suorce・Play()をセットします。
3. どのようなエラーやトラブルで困っていて
・2項で作成したプログラムを実行すると、Buttonはマウスクリックでクリック音が鳴ります。
 それに反して、2Dイメージのほうは、クリック音がなりません。EnevtTriggerが機能して
 いないように思われます。
4. 自分は何が解らないのか、知りたいのか
・2Dイメージに付与したEvent Triggerが機能するようにしたいのですが、そのために
デフォルトの設定を変更しなければならないところがあるのでしょうか?
・Unityの初心者で基本的な知識が不足してるのだと思います。⑥のCanvasの座標軸と
2Dイメージの座標軸が違ってくることを、Unityの入門書で知ったのですが、このことが
今回の機能を実現するうえで影響しているのか、どう対応すべきなのかはまでは理解できて
いません。
5. 今のCの知識はどの程度なのか
・Unityは使いだして半年、Cはかなり以前、1年程度の開発経験があります。現在、
ScriptはC#で開発しています。

アバター
びす
記事: 31
登録日時: 13年前

Re: UnityのEventTriggerに関する質問です

#7

投稿記事 by びす » 9年前

EventTriggerはUI用の機能なので、基本的にSpriteに使うことは想定されていません(たぶん)

以下のような方法をとるのが一般的ではないでしょうか。。
・SpriteではなくImageを用い、EventTriggerを設定する
・SpriteにColliderをつけ、クリックした時点でPhysics2D.OverlapPoint()で衝突判定する

unity 2d sprite click でGoogle検索

Fuji
記事: 7
登録日時: 9年前

Re: UnityのEventTriggerに関する質問です

#8

投稿記事 by Fuji » 9年前

びすさん、アドバイスいただき、有難うございました。
やはり基本的な知識不足だったです。ご指摘の方法でEvent Triggerの実装を
試みて見ます。早々に返信いただいたので大変助かりました。

Fuji
記事: 7
登録日時: 9年前

Re: UnityのEventTriggerに関する質問です

#9

投稿記事 by Fuji » 9年前

びすさん、
ご教示いただいた方法で2DSpriteにマウスクリックによる
EventTriggerを実装できました。アドバイスありがとうございました。
超初心者なのでまた質問をアップするかもしれません。お目に留まる
ことがありましたら、また、よろしくお願いします。
取り急ぎ、お礼まで

閉鎖

“C言語何でも質問掲示板” へ戻る