teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

修正

2021/01/16 19:26

投稿

Hawn
Hawn

スコア1222

answer CHANGED
@@ -1,6 +1,5 @@
1
1
  **OnEndDragでドロップ可能なタイルか判別して場合分けすると良いです**
2
2
 
3
- ハンドラを一時的など方法は複数ある気もしますが、
4
3
  `eventData.pointerEnter`でドラッグ終了時に重なっているオブジェクトが取得出来るのでそれで判別すると良いかと思います。
5
4
 
6
5
  背景や他の`RayCast`がアクティブになっているUIなどが存在する事を考慮するとタグなどを使って判別すると良いです。

5

修正

2021/01/16 19:25

投稿

Hawn
Hawn

スコア1222

answer CHANGED
@@ -4,9 +4,10 @@
4
4
  `eventData.pointerEnter`でドラッグ終了時に重なっているオブジェクトが取得出来るのでそれで判別すると良いかと思います。
5
5
 
6
6
  背景や他の`RayCast`がアクティブになっているUIなどが存在する事を考慮するとタグなどを使って判別すると良いです。
7
+ `eventData.pointerEnter.name`でオブジェクト名も取得出来るので名前判別も可能です。
7
- 無ければNullチェックだけも可能
8
+ Nullチェックで済む作りならばそれも構いません
8
9
 
9
- タグ名判別を使用してパネル以外の場所でドラッグを終了し時だけ`CanvasGroup.blocksRaycasts = true`を行いたい場合は下記のようになます。
10
+ タグ名判別を使用した場合分けは下記のになるかと思います。
10
11
 
11
12
  ```C#
12
13
  public void OnEndDrag(PointerEventData eventData)

4

終了

2021/01/16 17:48

投稿

Hawn
Hawn

スコア1222

answer CHANGED
@@ -1,4 +1,4 @@
1
- **OnEndDrag関数内でドロップ可能なタイルか判別して場合分けすると良いです**
1
+ **OnEndDragでドロップ可能なタイルか判別して場合分けすると良いです**
2
2
 
3
3
  ハンドラを一時的など方法は複数ある気もしますが、
4
4
  `eventData.pointerEnter`でドラッグ終了時に重なっているオブジェクトが取得出来るのでそれで判別すると良いかと思います。

3

修正

2021/01/16 17:44

投稿

Hawn
Hawn

スコア1222

answer CHANGED
@@ -1,6 +1,6 @@
1
- **OnEndDrag関数でドロップ可能なタイルか判別して場合分けすると良いです**
1
+ **OnEndDrag関数でドロップ可能なタイルか判別して場合分けすると良いです**
2
2
 
3
- ハンドラを一時的に削除するとかフラグ変数でおこうなど方法は複数ある気もしますが、
3
+ ハンドラを一時的など方法は複数ある気もしますが、
4
4
  `eventData.pointerEnter`でドラッグ終了時に重なっているオブジェクトが取得出来るのでそれで判別すると良いかと思います。
5
5
 
6
6
  背景や他の`RayCast`がアクティブになっているUIなどが存在する事を考慮するとタグなどを使って判別すると良いです。

2

修正

2021/01/16 17:42

投稿

Hawn
Hawn

スコア1222

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  背景や他の`RayCast`がアクティブになっているUIなどが存在する事を考慮するとタグなどを使って判別すると良いです。
7
7
  無ければNullチェックだけでも可能です。
8
8
 
9
- パネル以外の場所でドラッグを終了した時だけ`CanvasGroup.blocksRaycasts = true`を行いたい場合は下記のようになります。
9
+ タグ名判別を使用してパネル以外の場所でドラッグを終了した時だけ`CanvasGroup.blocksRaycasts = true`を行いたい場合は下記のようになります。
10
10
 
11
11
  ```C#
12
12
  public void OnEndDrag(PointerEventData eventData)

1

修正

2021/01/16 17:42

投稿

Hawn
Hawn

スコア1222

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  背景や他の`RayCast`がアクティブになっているUIなどが存在する事を考慮するとタグなどを使って判別すると良いです。
7
7
  無ければNullチェックだけでも可能です。
8
8
 
9
- パネル以外の場所でドラッグをした時だけ`OnEndDrag`内の処理を行いたい場合は下記のようになります。
9
+ パネル以外の場所でドラッグを終了した時だけ`CanvasGroup.blocksRaycasts = true`を行いたい場合は下記のようになります。
10
10
 
11
11
  ```C#
12
12
  public void OnEndDrag(PointerEventData eventData)