回答編集履歴

1

質問追記を受けて追記

2019/01/02 07:07

投稿

sakura_hana
sakura_hana

スコア11427

test CHANGED
@@ -25,3 +25,59 @@
25
25
  今回だと「本当はstringとboolを渡して欲しい」「でも毎回2つを渡すのは面倒臭い(boolはfalseであることが大半である)」「じゃあstringだけを渡された時は、第二引数はfalseだと勝手に決めることにしよう」という思惑で実装されています。
26
26
 
27
27
  (つまり「引数がstring1つ」「引数がstringとboolの2つ」のどちらでも動くようになっています)
28
+
29
+
30
+
31
+ ---
32
+
33
+
34
+
35
+ 【2019/01/02追記】
36
+
37
+ 今更検証しましたが、これそのままタッチで動きませんか?
38
+
39
+ 少なくとも`Input.GetAxis("Mouse X")`はタッチでも動いてる(Unityバージョン2018.2.3f1で検証)んで、最終地点までに余計な処理していなければ動作するような気がします。
40
+
41
+  
42
+
43
+
44
+
45
+ `Input.GetAxis`はUnityで定義されてるメソッドです。
46
+
47
+ [Input.GetAxis - Unity スクリプトリファレンス](https://docs.unity3d.com/ja/current/ScriptReference/Input.GetAxis.html)
48
+
49
+ ここを見ると「Edit > Project Settings > Input で設定されてるaxisNameの入力を取るよ」とあります。
50
+
51
+ なので該当の設定画面を見てください。
52
+
53
+ [Input Manager - Unity マニュアル](https://docs.unity3d.com/ja/current/Manual/class-InputManager.html)
54
+
55
+
56
+
57
+ デフォルト設定だと、例えば
58
+
59
+ 「Horizontal」は「leftキーかaキーが押されたらマイナス、rightキーかdキーが押されたらプラス」、
60
+
61
+ 「Mouse X」は「マウスが動いた時のX値(つまり左右)」を取得してることになります。
62
+
63
+ なのでこの条件を満たしていなかったら常に0だし、満たしていれば-1〜1の値を取ります。
64
+
65
+
66
+
67
+ で、Unityはマウスの処理がタッチでも発生するようにしてくれている場合が多いです。
68
+
69
+ 今回の場合は「Mouse X・Mouse Y」の設定で「Type : Mouse Movement」になってますが、こいつはタッチの時も有効のようです。
70
+
71
+ (2本指以上でやると狂うっぽいですが)
72
+
73
+  
74
+
75
+
76
+
77
+ ざっくり実装するならこのままこれを使う、2本指以上のタッチも適切に処理するなら自分で実装(「unity タッチ 方向入力」とかでググれば出て来ますし、そういうアセットを導入するのも良いでしょう)になるかと思います。
78
+
79
+ 自力実装の場合は以前の回答の通り
80
+
81
+ 「数秒前のタッチ位置(もしくはタッチ開始位置)と現在のタッチ位置を比較して、その差分から方向を求める」
82
+
83
+ という形でいいかと思います。