【Unity】まだ口痛いっす。とりあえずuGUIでドラッグアンドドロップのやり方 その2
こんにちは。坂内っす。
寒い日が続きますね。
タイトル通り、いまだに口内一部が痛いっす。
さて、前回の続きでUnityでのドラッグアンドドロップの話です。
前回はこちら”【Unity】まだ口痛いっす。とりあえずuGUIでドラッグアンドドロップのやり方 その1 ”
前回はドラッグ側の処理を書きました。
今回はドラッグされる側、以下スクショで言うと、上側にある白い四角の方の処理です。
こんなコードを上の白い四角それぞれにつけます。
DropTarget.cs

※動きはクリックしてみてね!
こんな感じの動きになります。
ドラッグアンドドロップなので、ドロップしたら白い絵を変えるとかの処理にすれば、それっぽい感じになるかと思いますよ!
Hierarchyの動きを見ると分かると思うのですが、ドラッグしたアイテムは上のオブジェクトの子供になる感じになってます。
ただ、今のままだとドラッグされたオブジェクトの文字色を透明にしてるだけで、位置とか調整していないので、変に触れちゃったりします。
その辺はRaycast Targetいじって触れなくしたりとか、お好きに手いれてね!
先週のと合わせれば、これでドラッグアンドドロップが簡単に実装できます!
ってところで、あでゅ~ノシ
寒い日が続きますね。
タイトル通り、いまだに口内一部が痛いっす。
さて、前回の続きでUnityでのドラッグアンドドロップの話です。
前回はこちら”【Unity】まだ口痛いっす。とりあえずuGUIでドラッグアンドドロップのやり方 その1 ”
前回はドラッグ側の処理を書きました。
今回はドラッグされる側、以下スクショで言うと、上側にある白い四角の方の処理です。
こんなコードを上の白い四角それぞれにつけます。
DropTarget.cs
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class DropTarget : MonoBehaviour, IDropHandler {
public GameObject Item {
get {
if (transform.childCount > 0) {
return transform.GetChild(0).gameObject;
}
return null;
}
}
public void OnDrop(PointerEventData eventData) {
if (Item == null) {
// 何もないところへドラッグ
DragObject.dragObject.GetComponent().color = new Color(1f,1f,1f,0f);
DragObject.dragObject.transform.SetParent(transform);
} else {
// すでに何かあるところへドラッグ>入れ替え
// 元々あったものを元へ戻す処理
Item.GetComponent().color = new Color(1f,1f,1f,1f);
Item.transform.SetParent(Item.GetComponent().parentTransform);
// 新しくドラッグされてきたオブジェクトの処理
DragObject.dragObject.GetComponent().color = new Color(1f,1f,1f,0f);
DragObject.dragObject.transform.SetParent(transform);
}
}
}

※動きはクリックしてみてね!
こんな感じの動きになります。
ドラッグアンドドロップなので、ドロップしたら白い絵を変えるとかの処理にすれば、それっぽい感じになるかと思いますよ!
Hierarchyの動きを見ると分かると思うのですが、ドラッグしたアイテムは上のオブジェクトの子供になる感じになってます。
ただ、今のままだとドラッグされたオブジェクトの文字色を透明にしてるだけで、位置とか調整していないので、変に触れちゃったりします。
その辺はRaycast Targetいじって触れなくしたりとか、お好きに手いれてね!
先週のと合わせれば、これでドラッグアンドドロップが簡単に実装できます!
ってところで、あでゅ~ノシ
Category: 開発日記(Unity)
« 【Unity】スプラッシュ機能使ったときの話【iOS】 | 【Unity】懲りずにカーソルネタだよ。カーソル変えてみたんだよ。 »
コメント
| h o m e |