teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

スクリーン座標系とワールド座標系の乖離に気付いてなかった

2022/08/09 17:55

投稿

drednote
drednote

スコア345

answer CHANGED
@@ -1,9 +1,3 @@
1
+ 実機の解像度とCanvasの解像度に乖離があれば、設定されているCanvas設定ではスクリーン座標系の単位とワールド座標系の単位が違ってきてしまいますね。
1
- というか、OnDrag処理の時点色々おかい気がしますが、何故これはこうなっるのでしょう?
2
+ ので、x座標計算する時ScreenToWorldPointで補正してみては如何でしょう?
2
- まず、OnDragで出している
3
- ```
4
- float difference = data.pressPosition.x - data.position.x;
3
+ OnDrag時にdataから得た座標はスクリーン座標系になってるから、それをScreenToWorldPointで変換してから計算すると上手く行くような気がします。
5
- ```
6
- は画面上でドラッグした、指の移動した距離をピクセル数で出した値なので、カメラが平行投影の2D環境であればこれをこのまま使って
7
- ドラッグしてやれば、それで上手く行くはずなのですが。
8
- ひょっとしてカメラが2Dじゃないのでは?
9
- この手の処理は大体、2D環境でやった方が簡単です。ピクセル数でそのまま計算出来るから。