方法
まずはオブジェクトを準備
- グリグリする対象となるCube配置
- Script(TouchController.cs)作成
- Scriptを適用する空のGameObject(TouchController)作成
![]() |
| 構成 |
using UnityEngine;
using System.Collections;
using System.Linq;
public class TouchController : MonoBehaviour
{
/// <summary>回転対象</summary>
public GameObject Cube;
/// <summary>回転速度</summary>
public float Speed = 0.01f;
void Update()
{
//タッチ数取得(Linq使えた)
int touchCount = Input.touches
.Count(t => t.phase != TouchPhase.Ended && t.phase != TouchPhase.Canceled);
if (touchCount == 1)
{
Touch t = Input.touches.First();
switch (t.phase)
{
case TouchPhase.Moved:
//移動量に応じて角度計算
float xAngle = t.deltaPosition.y * Speed * 10;
float yAngle = -t.deltaPosition.x * Speed * 10;
float zAngle = 0;
//回転
Cube.transform.Rotate(xAngle, yAngle, zAngle, Space.World);
break;
}
}
}
}
簡単なスクリプト説明
- タッチされた内容はInput.touchesに入る(マルチタッチ対応)
- EndedとCanceledを除いたタッチ数を取得(めんどうなのでLinq使いました)
- シングルタッチの場合、移動量計算して回転
実行する前に忘れず
- TouchControllerオブジェクトへスクリプト適用
- TouchControllerコンポーネントに回転対象Cube適用
![]() |
| いつも忘れる |
実行
![]() |
| グリグリできた |
簡単だなー。Unityすごい。
おわり。
タッチについて詳細は↓
→Unity系記事まとめ


