Unity C#でドラッグしている間イベントを実行する方法/OnMouseDragの使い方

child IT

OnMouseDragを使うと、シンプルな記述でドラッグ中のイベント処理を実装できます。
処理を実装するにはコライダーを設置する必要があります。イベントトリガーを使ってドラッグ中にイベント処理をする方法はこちら

スポンサーリンク

OnMouseDragの使い方

unity onmousedrag1
猫をこすると数字が増える、というものを作ります。
unity onmousedrag2
OnMouseDragメソッドの中で、テキストを取得し、それを1増やしてやれば、
unity ドラッグ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();
    }
unity ドラッグ2
Input.mousePositionOnMouseDragメソッド内で実行することで、画面左下を0,0とするスクリーン座標を取得できます。

OnMouseDownとOnMouseDragが同時にある場合

//Unity C#
void OnMouseDrag()
{
//ドラッグ時の処理
}

void OnMouseDown()
{
//クリック時の処理
}
両方実行されます。変更内容が重複する場合、クリックした瞬間にドラッグも判定入るので、実質的にドラッグのほうが優先度が高くなります。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント