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

質問編集履歴

3

句読点を追記。

2018/11/04 12:11

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -70,7 +70,7 @@
70
70
  mouseDeltaPosition = Input.mousePosition - prevPos;
71
71
 
72
72
  //ポインタ位置差分を求めた後で、現在のポインタ位置をprevPosに代入し、次回のUpdate実行に備える。
73
- //この「現在のポインタ位置」が、次フレームでは「前フレームのポインタ位置」となる
73
+ //この「現在のポインタ位置」が、次フレームでは「前フレームのポインタ位置」となる
74
74
  prevPos = Input.mousePosition;
75
75
 
76
76
  (省略)

2

追記

2018/11/04 12:11

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -53,4 +53,25 @@
53
53
  }
54
54
  this.transform.Rotate(xAngle, yAngle, zAngle, Space.World);
55
55
  }
56
+ ```
57
+
58
+ ### MEMO
59
+
60
+ タッチのdeltaPositionを、マウスで表現すると下記のようなmouseDeltaPositionになる。
61
+ ```C#
62
+ void Update()
63
+ {
64
+ if (Input.GetMouseButtonDown(0))
65
+ {
66
+ prevPos = Input.mousePosition;
67
+ }
68
+ else if (Input.GetMouseButton(0))
69
+ {
70
+ mouseDeltaPosition = Input.mousePosition - prevPos;
71
+
72
+ //ポインタ位置差分を求めた後で、現在のポインタ位置をprevPosに代入し、次回のUpdate実行に備える。
73
+ //この「現在のポインタ位置」が、次フレームでは「前フレームのポインタ位置」となる
74
+ prevPos = Input.mousePosition;
75
+
76
+ (省略)
56
77
  ```

1

追記作成。

2018/11/04 12:06

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -32,4 +32,25 @@
32
32
  this.transform.Rotate(xAngle, yAngle, zAngle, Space.World);
33
33
  }
34
34
  }
35
+ ```
36
+ ### 追記。
37
+ タッチの場合は、なぜRotateで実装できたのでしょうか?
38
+ 可能ならば、なるべくこれに近いコード(Rotateを使ったコード)で、エディタの方も実装したいです。
39
+
40
+ ```
41
+ int touchCount = Input.touches.Count(t => t.phase != TouchPhase.Ended && t.phase != TouchPhase.Canceled);
42
+
43
+ if (touchCount == 1)
44
+ {
45
+ Touch t = Input.touches.First();
46
+ switch (t.phase)
47
+ {
48
+ case TouchPhase.Moved:
49
+
50
+ xAngle = (t.deltaPosition.y/Screen.height)*90;
51
+ yAngle = -(t.deltaPosition.x/Screen.width)*90;
52
+ break;
53
+ }
54
+ this.transform.Rotate(xAngle, yAngle, zAngle, Space.World);
55
+ }
35
56
  ```