

<https://tech.pjin.jp/blog/2018/09/03/unity_get-clicked-gameobject/>  
を参考に、Unity3Dで配置したキャンバスの上にimg画像を1つ置き(bmpでもpngでも試しました。)、上のサイトと同じようにコードを書きました。

[code]

    if(Input.GetMouseButtonDown(0)){
               
           clickedGameObject = null;
     
                Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit2D hit2d = Physics2D.Raycast((Vector2)ray.origin, (Vector2)ray.direction);
     
                if (hit2d) {
                    clickedGameObject = hit2d.transform.gameObject;
                } 
    
                Debug.Log(clickedGameObject);
    
[/code]

マウスを動かすとたまにImageというメッセージは受け取れるのですが、座標が滅茶苦茶で実際の画像より右上でしか取得できませんでした。色々試したところ分かった部分もあり、カメラの位置を動かすと取得できる座標も変わるようです。Z座標が問題なのではないか、と思いましたが予想に沿ってそれ以上調べても理解できませんでした。この問題について詳しい方がいらっしゃいましたら教えてください。


CC BY-SA 4.0
2023-03-12T17:38:33.960
94144
2023-03-12T17:38:33.960
43578
question
unity3d
Unity3Dでキャンバス上のimgに2Dレイを飛ばすと座標がずれる。正しい座標を取得したい。