タイトルの通りですが、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
▼参考にしたURL
http://kan-kikuchi.hatenablog.com/entry/RayCast4
▼環境
Unity2017.3.1f1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/24 00:34