私は正しい答えを正しいスロットに入れるために簡単なゲームを作っています。あなたがスコアを持っているスロットに右のステッカーを置くときです。 ステッカー "a"をスロット "b"に置くとポイントが得られます。ステッカー "a"の場合、ステッカーはスロット "b"の子になります。 問題は、私はそれが動作しないgameobjectの名前を使用して、私はスコアを表示するためにdebug.logを使ってみましたが、それdoesnt作業。このスクリプトはスロットの構成要素です。 draghandlerは別のスクリプトのもので、スクリプトはステッカーのコンポーネントです。ここ はコードUnityのGameObjectの名前を比較する方法
public void OnDrop (PointerEventData eventData)
{
if (!item) {
DragHandler.itemBeingDragged.transform.SetParent (transform);
if (DragHandler.itemBeingDragged.gameObject.name == "b" && DragHandler.itemBeingDragged.transform.parent.name == "slot2") {
score = score + 25;
nilai = score.ToString();
Debug.Log ("score: "+nilai);
}}}
ですが、私はスロットの名前やステッカーを表示するには、このコードを使用する場合、これがdraghandler
using UnityEngine;
使用するためのコードである
public void OnDrop (PointerEventData eventData)
{
if (!item) {
DragHandler.itemBeingDragged.transform.SetParent (transform);
Debug.Log ("slot: "+DragHandler.itemBeingDragged.transform.parent.name + "item : "+DragHandler.itemBeingDragged.gameObject.name);
}
}
仕事ですSystem.Collections; UnityEngine.EventSystemsを使用しています。
パブリッククラスDragHandler:私の説明に欠けている何かがある場合MonoBehaviour、IDragHandler、IBeginDragHandler、IEndDragHandler {
public static GameObject itemBeingDragged;
Vector3 startPosition;
Transform startParent;
#region IBeginDragHandler implementation
public void OnBeginDrag (PointerEventData eventData)
{
itemBeingDragged = gameObject;
startPosition = transform.position;
startParent = transform.parent;
GetComponent<CanvasGroup>().blocksRaycasts = false;
}
#endregion
#region IDragHandler implementation
public void OnDrag (PointerEventData eventData)
{
startPosition = Input.mousePosition;
//Debug.Log ("namanya : " + itemBeingDragged.name);
}
#endregion
#region IEndDragHandler implementation
public void OnEndDrag (PointerEventData eventData)
{
itemBeingDragged = null;
GetComponent<CanvasGroup>().blocksRaycasts = true;
if (transform.parent == startParent) {
transform.position = startPosition;
}
}
#endregion
}
は私に知らせてください。 ありがとうございます。
私はdraghandlerコードで質問を編集しました。 OnEndDrag itembeingdragged = null は問題ですか? –
おそらくはい。あなたがドラッグの終了後にitemBeingDraggedをチェックしている可能性があります。 – LongarMD