OnMouseDragを使うと、シンプルな記述でドラッグ中のイベント処理を実装できます。
処理を実装するにはコライダーを設置する必要があります。イベントトリガーを使ってドラッグ中にイベント処理をする方法はこちら。
OnMouseDragの使い方
猫をこすると数字が増える、というものを作ります。
OnMouseDragメソッドの中で、テキストを取得し、それを1増やしてやれば、
比較的簡単にドラッグ中に処理を実行させることができます。
//Unity C#
using UnityEngine.UI;
public class catClick : MonoBehaviour
{
void OnMouseDrag()
{
Text text = GameObject.Find("Text").GetComponent<Text>();
int n = int.Parse(text.text) + 1;
text.text = n.ToString();
}
}
座標の取得
//Unity C#
void OnMouseDrag()
{
Vector3 thisPosition = Input.mousePosition;
Text text = GameObject.Find("Text").GetComponent<Text>();
text.text = thisPosition.ToString();
}
Input.mousePositionをOnMouseDragメソッド内で実行することで、画面左下を0,0とするスクリーン座標を取得できます。
たとえばドラッグで画面をスライドさせる場合、スクリーン座標をワールド座標、ローカル座標に変換する必要があります。
そのへんの話についてはこちらの記事参照。
そのへんの話についてはこちらの記事参照。
OnMouseDownとOnMouseDragが同時にある場合
//Unity C#
void OnMouseDrag()
{
//ドラッグ時の処理
}
void OnMouseDown()
{
//クリック時の処理
}
両方実行されます。変更内容が重複する場合、クリックした瞬間にドラッグも判定入るので、実質的にドラッグのほうが優先度が高くなります。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。
コメント