【Unity】ドラッグアンドドロップでアイテムを消す #2

投稿者: | 2021-02-03

UIの順番を並び替えるで機能を追加すると、ドラッグアンドドロップでインベントリのアイテムを消すときに問題が出たので修正してみました。

まず、アイテム画像をドラッグしている時に、それが有った場所に透明画像を入れましたが、ゴミ箱に入れたときにそれが残ったままなので、「はい」を選ぶと透明画像を非表示にするようにしました。

// 「はい」のとき
() => {
    // 掴んでいるアイテムを捨てる
    ThrowAway(currentImage);

    // 透明画像を非アクティブにする
    emptyImage.gameObject.SetActive(false);

    // ダイアログを消す
    Notification.GetInstance().DestroyDialog2();
},

// 「いいえ」のとき
() => {

    // アイテム画像をアクティブにする
    currentImage.gameObject.SetActive(true);

    // アイテム画像をもとに戻す
    DropFail();

    // ダイアログを消す
    Notification.GetInstance().DestroyDialog2();

});

また、「いいえ」を押してアイテム画像を元に戻すときに、記憶したアイテム画像の変数にnullを入れるようにしましたが、そうすると、その後にアイテム画像をアクティブにしようとしたときにエラーがでるので、もとに戻す前に書くようにしました。

// 修正前

// アイテム画像をもとに戻す
DropFail();
 
// ダイアログを消す
Notification.GetInstance().DestroyDialog2();
 
// アイテム画像をアクティブにする
currentImage.gameObject.SetActive(true);

// ---
// 修正後

// アイテム画像をアクティブにする
currentImage.gameObject.SetActive(true);

// アイテム画像をもとに戻す
DropFail();

// ダイアログを消す
Notification.GetInstance().DestroyDialog2();

これで一応修正できましたが、ゴミ箱のダイアログが出ているときに他のアイテムを動かしたりゴミ箱に入れられる等の問題がまだあります。

コメントを残す

メールアドレスが公開されることはありません。