回答編集履歴

1

回答2を追加

2018/06/04 12:45

投稿

negitama
negitama

スコア943

test CHANGED
@@ -1,3 +1,7 @@
1
+ ### 回答1
2
+
3
+
4
+
1
5
  質問者さんのコードは解読していませんが、uGUI要素のドラッグアンドドロップについては以前試したものがあるので、取り急ぎご参考まで。
2
6
 
3
7
 
@@ -5,3 +9,61 @@
5
9
  [UI] ドラッグアンドドロップでUIのイメージを動かす : ねぎたまらぼ(Unity, ゲーム制作)
6
10
 
7
11
  [http://negi-lab.blog.jp/DragAndDrop](http://negi-lab.blog.jp/DragAndDrop)
12
+
13
+
14
+
15
+ ### 回答2
16
+
17
+
18
+
19
+ 以下のようにすることで実現できました。
20
+
21
+
22
+
23
+ まずは下記スクリプトを作成し、各セルにアタッチします。インスペクターから ID の値をセットします。
24
+
25
+ ```C#
26
+
27
+ using UnityEngine;
28
+
29
+
30
+
31
+ // Cellを識別するID
32
+
33
+ public class CellId : MonoBehaviour
34
+
35
+ {
36
+
37
+ public string cellId;
38
+
39
+ }
40
+
41
+ ```
42
+
43
+
44
+
45
+
46
+
47
+ Tile.cs は2か所を編集します。
48
+
49
+ まずは `public string tileId;` を追記して、タイルのIDをインスペクターからセットします。セルのIDと一致したときだけ置けるようにするためのものです。
50
+
51
+
52
+
53
+ 次に、`public void Drop()` のなかの最後の if 文の条件を下記のように編集します。
54
+
55
+ ```C#
56
+
57
+ if ( currentCell.childCount != 0
58
+
59
+ || tileId != currentCell.GetComponent<CellId> ()?.cellId )
60
+
61
+ ```
62
+
63
+ これでOKです。
64
+
65
+
66
+
67
+ 参考動画
68
+
69
+ ![イメージ説明](1ff7ef0c8ada4474aaf863abfa6f27e8.gif)