赤兎ラボ

コーディングからバージョン管理、業務効率化までをまとめます。

ドラッグアンドドロップを実装する

ドラッグアンドドロップを実装する

UnityEngine.EventSystemsにはドラッグアンドドロップ用のインターフェースが実装されています。
IDragHandler等を継承し、OnDrag()を実装するだけで簡単にドラッグ処理が実装出来ます。
厳密にドラッグ開始やクリックのタイミングで実行したい場合、参考のスクリプトリファレンス > UnityEngine.EventSystemsを読んでみてください。


using UnityEngine;
using UnityEngine.EventSystems;

public class DragImage : MonoBehaviour, IDragHandler
{
	public void OnDrag(PointerEventData eventData)
	{
		// ドラッグ中は位置を更新する
		this.gameObject.transform.position = eventData.position;
	}
}

上記コードを該当するUI Imageオブジェクトにアタッチするだけでドラッグ処理が実装できました!

なお、ヒエラルキーにはEventSystemオブジェクトが自動生成されることになります。Buttonを実装した時と同じようにEventSystemを利用しているのでこうなります。

参考

https://docs.unity3d.com/ja/current/ScriptReference/EventSystems.IDragHandler.html

http://negi-lab.blog.jp/DragAndDrop