方法
まずはオブジェクトを準備
- グリグリする対象となる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系記事まとめ