У меня есть список компонентов, и я хочу дать ему некоторые значения, как это.
public LoadButtonData loadButtonData;
GameObject clone = Instantiate(buttonPrefab, transform);
LoadButtonProperties properties = clone.GetComponent<LoadButtonProperties>();
properties.filePath = filePath;
properties.Date.text = time.ToShortDateString();
properties.Name.text = fileName;
properties.Place.text = DataLoaded.sceneName;
properties.Thumbnail.sprite = newSprite;
loadButtonData.loadButtons.Add(properties);
LoadButtonData
- это объект, содержащийся в другом объекте с помощью DontDestroyOnLoad () и используемый в нескольких сценах.Однако после переключения сцен это происходит:
Я понимаю, что это потому, что свойства добавляются в список в качестве ссылок и при смене сцены,клоны кнопок уничтожены и на них больше нельзя ссылаться.
Есть ли обходной путь для этого, чтобы я мог повторно использовать свои значения в своих сценах как реальные значения, а не как ссылки?Как добавить копии данных клона LoadButtonProperties
вместо ссылок на клон?
Редактировать: Перефразированный вопрос для уточнения
Редактировать: ЭтоКласс LoadButtonProperties
public class LoadButtonProperties : MonoBehaviour
{
/// <summary>
/// Path to the json file for loading
/// </summary>
public string filePath;
[Tooltip("Place Date here")]
public TextMeshProUGUI Date;
[Tooltip("Place Name here")]
public TextMeshProUGUI Name;
[Tooltip("Place Place here")]
public TextMeshProUGUI Place;
[Tooltip("Place Thumbnail here")]
public Image Thumbnail;
}
Была предпринята попытка глубокого клонирования, но мне не удалось это сделать из-за переменной Image