Size: a a a

2021 March 31

АП

Алексей Приказчиков... in unity3d.ru
[SerializeField] private int m_CustomPropertyField;
public int CustomProperty => m_CustomPropertyField

А у меня так работает
источник

А

Александр in unity3d.ru
Алексей Приказчиков
[SerializeField] private int m_CustomPropertyField;
public int CustomProperty => m_CustomPropertyField

А у меня так работает
это даже не автопропа, тут свойство даже не нужно сериализировать)
источник

А

Александр in unity3d.ru
Paul Sammler
"Юнити свойства не сериализует." - ХА!!!!))))
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PropertySerializationTest : MonoBehaviour
{
   [field: SerializeField] public int AutoProperty { get; private set; }


   [SerializeField] private int m_CustomPropertyField;
   public int CustomProperty { get { return m_CustomPropertyField; } }
}
ого, даже не думал, что можно уже автопропу сериализировать, но можно ли вообще её без атрибута сериализировать, вот в чем вопрос (второе в инспекторе даже не пропа, если что)
источник

AS

Anton Shvets in unity3d.ru
а у юнити свой способ сериализации байтовой, или он юзает стандартную дотнетовский BinaryWriter?
источник

PS

Paul Sammler in unity3d.ru
Александр
ого, даже не думал, что можно уже автопропу сериализировать, но можно ли вообще её без атрибута сериализировать, вот в чем вопрос (второе в инспекторе даже не пропа, если что)
не уверен, когда в шарпах появилась возможность таргетировать аттрибут полю автосвойства (
field:
), но без него поле просто приватное поле, которое вообще без аттрибутов и создается только во время компиляции с "непроизносимым именем". так что без этого хитрого аттрибута никак. но это все же нехорошая практика, т.к. непроизносимое имя отнюдь не константа и никто не сказал, что от версии к версии компилятора формат имени не будет меняться. сам факт возможности сериализации забавен)
источник

PS

Paul Sammler in unity3d.ru
Anton Shvets
а у юнити свой способ сериализации байтовой, или он юзает стандартную дотнетовский BinaryWriter?
как я понял, юнити сериализует поля в YAML-формат (если ассеты хранятся в текстовом виде). а восстанавливаются через рефлексию (да так, что аж конструкторы по умолчанию не срабатывают)
источник

А

Александр in unity3d.ru
Paul Sammler
не уверен, когда в шарпах появилась возможность таргетировать аттрибут полю автосвойства (
field:
), но без него поле просто приватное поле, которое вообще без аттрибутов и создается только во время компиляции с "непроизносимым именем". так что без этого хитрого аттрибута никак. но это все же нехорошая практика, т.к. непроизносимое имя отнюдь не константа и никто не сказал, что от версии к версии компилятора формат имени не будет меняться. сам факт возможности сериализации забавен)
в С# сами по себе пропы считаются сериализируемыми, но в юнити по дефолту нет. Я и не говорил, что это в целом нельзя, тут как бы кейс обсуждение было
источник

AS

Anton Shvets in unity3d.ru
Paul Sammler
как я понял, юнити сериализует поля в YAML-формат (если ассеты хранятся в текстовом виде). а восстанавливаются через рефлексию (да так, что аж конструкторы по умолчанию не срабатывают)
Жирно
источник

А

Александр in unity3d.ru
Anton Shvets
Жирно
Вообще что либо сериализиировать, куда надежнее не штатными методами, оно как-то более предсказуемо выходит (ИМХО конечно)
источник

AS

Anton Shvets in unity3d.ru
и не так жирно
источник

AS

Anton Shvets in unity3d.ru
я пробовал однажды сериализировать через BinaryWriter. Это жесть. 100 байтов на один List с одним элементом string внутри
источник

AS

Anton Shvets in unity3d.ru
психанул и написал свой
источник

AS

Anton Shvets in unity3d.ru
и теперь один лист у меня такой же
источник

AS

Anton Shvets in unity3d.ru
это 10 байт
источник

А

Александр in unity3d.ru
есть куча либ, которые делают, все что тебе надо
источник

AS

Anton Shvets in unity3d.ru
Есть
источник

AS

Anton Shvets in unity3d.ru
Но почему не написать свое?)0
источник

AS

Anton Shvets in unity3d.ru
велосипедить это святое дело программиста
источник

AS

Anton Shvets in unity3d.ru
да и практика какая-никакая
источник

PS

Paul Sammler in unity3d.ru
Anton Shvets
Но почему не написать свое?)0
вот так вот пишешь джуном свой первый CorouWaiter, а потом узнаешь о существовании всех этих LeanTween, DOTween и че-то как-то руки опускаются. зато делегаты выучил)
источник