Unityを使っていると、WindowsとAndroid/iOS両方に対応したゲームを作ることもあるかなと思います。その際、Windowsではマウス、Android/iOSではタッチデバイスが基本操作になってくると思いますが、どんな感じに対応すれば良いのか悩む場面もあるかもしれません。
Microsoftのドキュメントですが、そういう場合に参考になりそうな資料がこちらです。
Windows Touch Gestures Overview | Microsoft Docs
https://docs.microsoft.com/en-us/windows/desktop/wintouch/windows-touch-gestures-overview
一部を抜粋するとこんな感じ。
Tap ⇔ Click Panning ⇔ Scrolling Press ⇔ Right-click Zoom ⇔ CTRL+Scroll
実際には、画面サイズとかいろいろ悩みの種はありますが、ビルド自体は簡単に通ってしまうところがUnityの利点かなと思います。
リンク
Unity – Scripting API: Touch
https://docs.unity3d.com/ScriptReference/Touch.html
関連記事
UnityでマウスがUI上にあるかどうかチェックするスクリプト
Unityでは、Physics.Raycastを使ってマウスがオブジェクト上にあるかどうか調べることができます。
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast (ray, out hit)) {
// 処理したい内容
}
ただし、上...
ScreenToWorldPointでクリックした位置のWorld座標が取得できない場合
マウスでクリックした位置に対応するWorld座標を取得したい場合、Camera.ScreenToWorldPointを使うと思いますが、たまに正しい値が取得できないことがあります。
Camera.main.ScreenToWorldPoint (Input.mousePosition);
そういう場合は、CameraのProjectionをOrthographicに設定してみるとうま...
Unityでマウスカーソルの画像を変更する方法
マウスカーソルの画像を(一時的に)変更したい場合はCursor.SetCursorを使うと実装できるみたいです。
使い方
例えば、カーソルが特定のエリアにある時にカーソル画像を変更したい場合は次のような感じです。
public class Example : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
...
UnityでInput.GetKeyを使った操作
Unityでキーボード・ゲームパッドを使ってキャラクターを操作したい場合、
if (Input.GetKey("forward")) {
transform.position += Vector3.forward * Time.deltaTime;
}
のような感じでスクリプトを書くと思います。
ここで使う"forward"とかの文字列は
[Edit] » [Proj...
Unity2Dでオブジェクトへのクリックを取得する方法
Unity2Dでゲーム内に配置したオブジェクトをクリック(タップ)したい場合は、対象オブジェクトにCollider2D(BoxCollider2DとかCircleCollider2Dなど)を設定した上でPhysics2D.Raycastを使って実装できます。
サンプル
void Update()
{
if (Input.GetMouseButtonDown(0))
{
...