マウス/タッチ操作による一般的なジェスチャーをシンプルなコードで利用可能にするアセット(になる予定)
- WebPlayerでのマウス操作およびiPhone,Androidでのタッチ操作を等しく扱えます。
- タッチ操作はシングルタッチのみ対応(必要になったらマルチタッチ対応します)
- 扱える操作
- タッチ開始(マウスクリックを開始)
- タッチ終了(マウスクリックを離す)
- ドラッグ(スワイプ)
- フリック開始(マウスドラッグ開始)
- フリック(マウスドラッグしながら離す)
- TouchManager.unitypackageをインポート
- TouchManager.prefabをシーンに配置
- タッチイベントを受け取りたいスクリプト上で下記を記述
下記ソースは TouchListener.prefab にサンプルとして書かれています。
using naichilab.InputEvents;
void OnEnable ()
{
TouchManager.Instance.TouchStart += OnTouchStart;
}
void OnDisable ()
{
TouchManager.Instance.TouchStart -= OnTouchStart;
}
void OnTouchStart (object sender, CustomInputEventArgs e)
{
string text = string.Format ("OnTouchStart X={0} Y={1}", e.Input.ScreenPosition.x, e.Input.ScreenPosition.y);
Debug.Log (text);
}
void OnEnable ()
{
TouchManager.Instance.TouchEnd += OnTouchEnd;
}
void OnDisable ()
{
TouchManager.Instance.TouchEnd -= OnTouchEnd;
}
void OnTouchEnd (object sender, CustomInputEventArgs e)
{
string text = string.Format ("OnTouchEnd X={0} Y={1}", e.Input.ScreenPosition.x, e.Input.ScreenPosition.y);
Debug.Log (text);
}
void OnEnable ()
{
TouchManager.Instance.Drag += OnDrag;
}
void OnDisable ()
{
TouchManager.Instance.Drag -= OnDrag;
}
void OnDrag (object sender, CustomInputEventArgs e)
{
string text = string.Format ("OnSwipe Pos[{0},{1}] Move[{2},{3}]", new object[] {
e.Input.ScreenPosition.x.ToString ("0"),
e.Input.ScreenPosition.y.ToString ("0"),
e.Input.DeltaPosition.x.ToString ("0"),
e.Input.DeltaPosition.y.ToString ("0")
});
Debug.Log (text);
}
void OnEnable ()
{
TouchManager.Instance.FlickStart += OnFlickStart;
}
void OnDisable ()
{
TouchManager.Instance.FlickStart -= OnFlickStart;
}
void OnFlickStart (object sender, FlickEventArgs e)
{
string text = string.Format ("OnFlickStart [{0}] Speed[{1}] Accel[{2}] ElapseTime[{3}]", new object[] {
e.Direction.ToString (),
e.Speed.ToString ("0.000"),
e.Acceleration.ToString ("0.000"),
e.ElapsedTime.ToString ("0.000"),
});
Debug.Log (text);
}
void OnEnable ()
{
TouchManager.Instance.FlickComplete += OnFlickComplete;
}
void OnDisable ()
{
TouchManager.Instance.FlickComplete -= OnFlickComplete;
}
void OnFlickComplete (object sender, FlickEventArgs e)
{
string text = string.Format ("OnFlickComplete [{0}] Speed[{1}] Accel[{2}] ElapseTime[{3}]", new object[] {
e.Direction.ToString (),
e.Speed.ToString ("0.000"),
e.Acceleration.ToString ("0.000"),
e.ElapsedTime.ToString ("0.000")
});
Debug.Log (text);
}
- Fork it ( https://github.com/naichilab/Unity-TouchManager/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
This software is released under the MIT License, see LICENSE.txt. MIT