Я пытаюсь скопировать два разных экземпляра одного и того же класса без ссылки, я не знаю, почему это так сложно сделать, просто скопируйте и хорошо, до свидания, да?
Кстати, я нашел скрипт с binnaryformatter, который делает то, что я хочу, но в моем классе у меня есть переменная типа Texture2D, и когда я нажимаю кнопку воспроизведения, у меня возникает ошибка, говорящая о том, что Texture2D не помечен как сериализуемый.
using UnityEngine;
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters.Binary;
public class pichota : MonoBehaviour {
public List<Pig> johnPigList = new List<Pig>();
public List<Pig> peterPigList = new List<Pig>();
void Start () {
List<Pig> templist = Clone(johnPigList);
peterPigList = templist;
}
public List<Pig> Clone(List<Pig> source)
{
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, source);
ms.Seek(0, 0);
return (List<Pig>)bf.Deserialize(ms);
}
}
void Update () {
if (Input.GetKeyDown(KeyCode.G))
{
peterPigList[0].number += 2;
}
}
}
[System.Serializable]
public class Pig
{
public int number;
}
есть ли другой способ глубокого копирования или просто сериализации текстуры 2d? не смейтесь надо мной, я новичок в этих продвинутых вещах