###4点をマウスクリックすると、そこを頂点とした四角形を表示させたい
四角形の描画まではいったのですが、位置ずれがおきてしまっていたのでScreenToWorldPointを使用しました
四角形を描画するスクリプトはメインカメラに入れています
しかし、z軸を指定していますが、カメラの座標を返してきてます
どのようにすれば絶対座標に変換できるのでしょうか?
###発生している問題・エラーメッセージ
画面上での頂点4つの異なる座標は得られるが、絶対座標にしたときにすべての頂点の値がカメラの座標になってしまう
###該当のソースコード
Vector3[] mousepos=new Vector3[4]; private int hitNum=0; void Update(){ mousePressed() if (hitNum > 3) {//4点以上クリックしていたら Vector3[] vertices=new Vector3[4]; for (int i = 0; i < 4; i++) { vertices [i] = Camera.main.ScreenToWorldPoint (mousepos [i]);//頂点座標を絶対座標に変換したい } } 以下四角形の描画するコード } void mousePressed(){ if(Input.GetMouseButtonDown(0)){ switch(hitNum){//マウスをクリックした回数 case 0: Vector3 mouse = Input.mousePosition; mouse /= 100; mouse.z = 0f; mousepos [0] = mouse; hitNum++; break; case 1: mouse = Input.mousePosition; mouse /= 100; mouse.z = 0f; hitNum++; mousepos [1] = mouse; break; case 2: mouse = Input.mousePosition; mouse /= 100; mouse.z = 0f; hitNum++; mousepos [2] = mouse; break; case 3: mouse = Input.mousePosition; mouse /= 100; mouse.z = 0; hitNum++; mousepos [3] = mouse; break; default: break; } } }
###試したこと
CameraのProjectionをPerspectiveからOrthographicに変えてみたとき、頂点座標はカメラの座標にはならなかったが、すべての頂点の座標が同じ値になってしまった
###補足情報(言語/FW/ツール等のバージョンなど)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/25 12:40
退会済みユーザー
2017/12/25 12:41
2017/12/25 13:15
退会済みユーザー
2017/12/25 14:05
2017/12/25 23:42