質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

4512閲覧

UnityでEventSystemのRaycastAllでCanvas内のSpriteを判定させる方法

yrema

総合スコア286

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/05/14 00:31

https://teratail.com/questions/124540
上記質問では、EventSystemのRaycastAllでCanvasのTextやImageなどを判定させることができましたが、Spriteオブジェクトは判定できませんでした。
Imageコンポーネントに[Raycast Target]の項目があるので、
これだと思ってSpriteオブジェクトにImageコンポーネントをつけてColorのアルファを0にし、[Raycast Target]にチエックをいれると確かに判定はできました。

ですが、SpriteRendererがあるのにImageを追加するのが2つ画像追加しているようで何か違和感があるのですが、他に方法はないでしょうか?

◆環境
Unity2017 3.1f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

SpriteにCollider付けてPhysics.Raycast
または
SpriteにCollider2D付けてPhysics2D.Raycast
で取れると思います。

それでも取れないとすると、Canvasの下に居る所為でRayの位置とSpriteの位置がズレてしまっているか。
Debug.Rayを使って想定通りの場所に出ているか確認するといいかもです。

まぁ普通はCanvas(TextやImage)を使うならRaycastを使いませんし、
Spriteを使うならCanvas下には入れません。用途を見直した方がいいと思います。
(Canvasはカメラサイズにより大きくリサイズするのでワールド/ローカル座標変換が面倒臭いです)

投稿2018/05/14 05:50

sakura_hana

総合スコア11425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yrema

2018/05/14 08:02

> 普通はCanvas(TextやImage)を使うならRaycastを使いませんし、 普通はCanvas(TextやImage)を使うなら何を使って判定するのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問