Unity

[ Unity ] 유니티 c# 깊은 복사하기

거두절me 2024. 1. 15. 20:37

일단 class 파일을 만든다.

[System.Serializable]
public class WeaponData
{
public string nameEN;
public string nameKR;
public string desc; // 설명
public StatData[] levelStat;
public int level;

public WeaponData(WeaponData data){
    this.nameEN = data.nameEN;
    this.nameKR = data.nameKR;
    this.desc = data.desc;
    this.levelStat = data.levelStat;
    this.level = data.level;
}

}


// weaponData : 복사할 데이터
WeaponData[] weaponData = GameManager.instance.abilityDatabase.weapons;
// weaponCopyData : 복사된 데이터
WeaponData[] weaponCopyData = new WeaponData[weaponData.Length];

for (int i = 0; i < aa.Length; i++)
{
weaponCopyData[i] = new WeaponData(weaponData[i]);
}


이런 식으로 하면된다.
변수가 많으면 좀 귀찮긴해도 한 번만 만들어 두면 된다.