2016-04-15 11 views
1

Unityで在庫システムを作成していますが、厄介な謎に悩まされています。インベントリシステムのアイテムを以前のスロットにドラッグすると、OnMouseEnter関数が実行されません。 Control Doubleキーボードショートカットを使用して3つのスロットを作成しました。それらは「Slot」、「Slot(1)」、および「Slot2」という名前です。 アイテムをスロット(1)にドラッグすると、最初のスロット「スロット」にドラッグすることはできません。アイテムをスロット(2)にドラッグすると、2番目のスロット「Slot(1)」にドラッグできません。 "Slot(2)"から "Slot(1)"または "Slot"にアイテムをドラッグしようとすると、OnPointerEnter()メソッドが呼び出されないことに気付きました。何故ですか?OnPointerEnter()関数が正常に動作しない

この在庫移動スクリプトは、マウスのドラッグ先のスロットにの項目の親を設定し、ローカル位置のVector3.Zeroに配置することで動作するはずです。 InventoryControllerスクリプトはUIImage、在庫、SlotControllerスクリプトはUIImage、Slotに添付され、ItemスクリプトはUIImage、Itemに添付されています。私の階層、インスペクタ、およびスクリプトは、以下の画像にあります。先進的な私を助けてくれてありがとう!

Item Script

SlotController Script

InventoryController Script

Game View

+0

アイテムが選択されている場合にのみ、ドラッグ( 'OnBeginDrag')を開始する必要があると思います。単純に 'controller.dragging = true'を設定しないでください。また、 'SlotController'にはそのブールは必要ありません。単に 'controller.dragging'に直接アクセスしてください。 updateを使用してboolをチェックすると、boolが 'OnPointerEnter'でチェックしたときに更新されないという問題が発生する可能性があります。 –

答えて

0

さて私はあなたがOnEndDragでnull参照の例外を取得している見ることができます。コントローラオブジェクトに参照があるかどうかをチェックします。

+0

私はもはやnull参照例外を取得していませんが、元のスロットにアイテムを戻すことができません@UriPopov –

関連する問題