配列のコピー方法をまとめました。
[ 一覧 ]
=
「=」を使って配列をコピーするとシャローコピーになります。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScriptTest : MonoBehaviour { private void Start() { int[] ArrayA = new int[]{1, 2, 3}; int[] ArrayB = new int[]{4, 5, 6}; ArrayB = ArrayA;// ArrayAをArrayBにコピーします。 print("ArrayA: " + ArrayA[0] + ", " + ArrayA[1] + ", " + ArrayA[2]);// ArrayA: 1, 2, 3 print("ArrayB: " + ArrayB[0] + ", " + ArrayB[1] + ", " + ArrayB[2]);// ArrayB: 1, 2, 3 ArrayB[0] = 7; ArrayB[1] = 8; ArrayB[2] = 9; print("ArrayA: " + ArrayA[0] + ", " + ArrayA[1] + ", " + ArrayA[2]);// ArrayA: 7, 8, 9 print("ArrayB: " + ArrayB[0] + ", " + ArrayB[1] + ", " + ArrayB[2]);// ArrayB: 7, 8, 9 } }
Array.Copy()
「Array.Copy()」を使って配列をコピーするとディープコピーになります。
using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class ScriptTest : MonoBehaviour { private void Start() { int[] ArrayA = new int[]{1, 2, 3}; int[] ArrayB = new int[]{4, 5, 6}; Array.Copy(ArrayA, ArrayB, ArrayA.Length);// ArrayAをArrayBにコピーします。 print("ArrayA: " + ArrayA[0] + " " + ArrayA[1] + " " + ArrayA[2]);// ArrayA: 1, 2, 3 print("ArrayB: " + ArrayB[0] + " " + ArrayB[1] + " " + ArrayB[2]);// ArrayB: 1, 2, 3 ArrayB[0] = 7; ArrayB[1] = 8; ArrayB[2] = 9; print("ArrayA: " + ArrayA[0] + " " + ArrayA[1] + " " + ArrayA[2]);// ArrayA: 1, 2, 3 print("ArrayB: " + ArrayB[0] + " " + ArrayB[1] + " " + ArrayB[2]);// ArrayB: 7, 8, 9 } }