FC2ブログ
01 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.» 03

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】いたって簡単!UnityのuGUIのオブジェクトをドラッグアンドドロップする方法。 

こんにちは!坂内です!

日曜に遅くまで飲むのは愚の骨頂ですね!
頭痛い・・・
まぁ来週も日曜日また飲みなんですが。

さて、ちょうど1年前くらいにドラッグアンドドロップの話を書きました。

【まだ口痛いっす。とりあえずuGUIでドラッグアンドドロップのやり方 その1 】

これとはまた違う、ちょー簡単なD&Dの方法を紹介。

まずは、こんな感じで背景(黒のImage)を用意し、動かすオブジェクトとして、ただの白い四角を用意します。


こんな感じのスクリプトも用意します。
【DragAndDrop.cs】
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DragAndDrop : MonoBehaviour {

public GameObject dragObj;
bool inDragFlg;
Vector2 cursolPosition;

/// <summary>
/// オブジェクトPointDown
/// </summary>
public void StartDrag() {
inDragFlg = true;
}

/// <summary>
/// オブジェクトPointUp
/// </summary>
public void EndDrag() {
inDragFlg = false;
}

void Update () {
// ドラッグしている間だけオブジェクトを移動
if(inDragFlg) {
cursolPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
dragObj.transform.position = cursolPosition;
}
}
}


このスクリプトはCanvasなんかにつけておきます。



動かすオブジェクトをアサインしておきます。

動かすオブジェクト「dragObj」にはEventTriggerをセットし、PointerDown(オブジェクトを押したとき)とPointerUp(オブジェクトを離したとき)のアクションにそれぞれDragAndDrop.csのStartDrag()とEndDrag()を指定してあげます。
==========================================
追記:PinterDownよりも、BeginDrag。PointerUpの代わりにEndDragを使う方がよさそうです!!
==========================================




以上!!


これだけで、ドラッグアンドドロップ完成です!





ということで、本日は簡単なドラッグアンドドロップでした!あでゅ~ノシ
スポンサーサイト



Category: 開発日記(Unity)

tb 0 : cm 2