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

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

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

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

Q&A

解決済

1回答

4681閲覧

Unity2Dでマウスカーソル下のGameObjectを取得したい

yrema

総合スコア286

Unity

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

0グッド

0クリップ

投稿2018/04/23 20:01

タイトルの通りですが、Rayを使ってGameObjectを取得しようとしています。
が、Colliderが衝突したと判定してくれないようです。使い方を間違えているでしょうか?

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class TestScript : MonoBehaviour { 6 7 // Use this for initialization 8 void Start () { 9 10 } 11 12 // Update is called once per frame 13 void Update () { 14 getGameObjectByRay(Input.mousePosition); 15 } 16 17 /* 18 * 指定された座標のGameObjectを取得(Rayを使用) 19 */ 20 public static GameObject getGameObjectByRay(Vector3 pos) { 21 Log.d("pos", pos); 22 //メインカメラ上のマウスカーソルのある位置からRayを飛ばす 23 // Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 24 Ray ray = Camera.main.ScreenPointToRay(pos); 25 26 //レイヤーマスク作成 27 int layerMask = 0;//LayerMaskNo.DEFAULT; 28 29 //Rayの長さ 30 float maxDistance = 99999; 31 32 RaycastHit2D hit = Physics2D.Raycast((Vector2)ray.origin, (Vector2)ray.direction, maxDistance, layerMask); 33 34 //なにかと衝突した時だけそのオブジェクトの名前をログに出す 35 if (hit.collider) { 36 Log.d("★hit.collider.gameObject.name", hit.collider.gameObject.name); 37 return hit.collider.gameObject; 38 } 39 Log.d("hit.collider", hit.collider); 40 41 return null; 42 } 43} 44上記TestScriptはMain Cameraにアタッチされています。 45

▼Box Colliderの内容
イメージ説明

▼参考にしたURL
http://kan-kikuchi.hatenablog.com/entry/RayCast4

▼環境
Unity2017.3.1f1

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

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

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

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

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

guest

回答1

0

ベストアンサー

C#

1 //レイヤーマスク作成 2 int layerMask = 0;//LayerMaskNo.DEFAULT;

上記だと「何も指定しない」になります。
よって、このRaycastは何もヒットしなくなります。

もし、0番のレイヤーを指定したい場合は、以下のように指定する必要があります。

C#

1 //レイヤーマスク作成 2 int layerMask = 1 << 0;

こちらには他の方法も書いており、参考になると思います。

投稿2018/04/23 23:34

fiveHundred

総合スコア9778

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

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

yrema

2018/04/24 00:34

なるほど。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問