ページ 11

UnityのEventTriggerに関する質問です

Posted: 2016年5月12日(木) 07:18
by Fuji
Unityで、2DスプライトにEventTriggerを使ってマウス・クリックによるスクリプトの実行を実装したいのですが、うまく動きません。同スクリプトはUIのButtonのOnclickで実装すると動きます。EventTriggerでの実装は、PointerDownを使い、Canvasに付加したスクリプトを設定しています。

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

Posted: 2016年5月12日(木) 07:39
by hide
そうですか。ここはブログではないので、宜しくお願いします。

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

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

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

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

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

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

Posted: 2016年5月13日(金) 17:55
by Fuji
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#で開発しています。

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

Posted: 2016年5月13日(金) 20:54
by Fuji
記述内容に誤りがありました。②に”自動的に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#で開発しています。

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

Posted: 2016年5月14日(土) 11:29
by びす
EventTriggerはUI用の機能なので、基本的にSpriteに使うことは想定されていません(たぶん)

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

unity 2d sprite click でGoogle検索

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

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

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

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