在庫システムを作成していますが、アイテムを単純なドラッグ アンド ドロップでセルからセルに移動する必要がある部分で立ち往生しています。
マウスボタンが離されたときに操作するセルへの参照を保持する必要があるアイテムを保持するItem[,] Inventory
配列がありますが、これを実行しようとすると:object fromCell, toCell
object temp = toCell;
toCell = fromCell;
fromCell = temp;
...ゲームはオブジェクト参照のみを交換しており、実際のオブジェクトは交換していません。どうすればこれを機能させることができますか?
UPD: Bartosz のおかげで、私はこれを理解しました。オブジェクトの配列への参照を安全に使用し、スワップしたいオブジェクトの保存されたインデックスでそれを変更できることがわかりました。
コードは次のようになります。
object fromArray, toArray;
int fromX, fromY, toX, toY;
// this is where game things happen
void SwapMethod()
{
object temp = ((object[,])toArray)[toX, toY];
((object[,])toArray)[toX, toY] = ((object[,])fromArray)[fromX, fromY];
((object[,])fromArray)[fromX, fromY] = temp;
}