3次元配列ちょこちょこいじってみました。
配列をコピーした場合でも同様の配列を参照してしまうみたいです。
なので、
// [引数]3次元配列(コピー元)
function array_copy3d(_a){
var _b = array_create(0); // コピー先
var _length1 = array_length(_a);
for(var i=0; i<_length1; i++){
var _length2 = array_length(_a[i]);
_b[i] = array_create(_length2)
array_copy(_b[i], 0, _a[i], 0, _length2);
}
}
このように配列の2次元目をコピーすると別の配列として参照できました。
(3次元目をコピーしてもいけますが、記述が長くなるので2次元目にしました)
コピー先をいじった後、元に返すのは、
// _aコピー元 _bコピー先
var _length1 = array_length(_a);
array_copy(_a, 0, _b, 0, _length1);
// 戻り値があるなら
return _b;
でいけます。
GMSで3次元配列を扱うのはリスキーに思われるので、1次元配列の中に2次元配列を格納する
という手法も1つの策かと思われます。
参考になれば幸いです。
通報 ...
おおお、これで何とかなりそうです。ありがとうございます!!
3次元配列が単純にコピーできないのは不具合なのかな・・・。