FC2ブログ
    09 «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.29.30.31.» 11

    ハルシオンシステムの気まま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   

    コメント

    EventTriggerにはOnBeginDrag, OnDrag, OnEndDragがあるので、そちらを使ったほうが良いのでは…………?

    しろくろ #- | URL | 2018/02/26 12:36 [edit]

    毎度しろくろさんコメントありがとうございます!!

    OnBeginDragとか見てなかった!いつからあったんだろう…
    そっちの方がよさそうですね!

    ハルシオン #- | URL | 2018/02/26 12:48 [edit]

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/478-f60116bd
    この記事にトラックバックする(FC2ブログユーザー)