/
TON618OFF
/
Unity-Project-RTU
Обзор
Документация
Войти
/
TON618OFF
/
Unity-Project-RTU
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Library/PackageCache/com.unity.visualscripting@1.9.4/Runtime/VisualScripting.Flow/Framework/Codebase/GetMember.cs
74 строки
2 KB
TON618OFF
release
03 окт 2024, 22:20
03 окт 2024, 22:20
7c70e9f
Код
Авторство
О чём код?
namespace Unity.VisualScripting { /// <summary> /// Gets the value of a field or property via reflection. /// </summary> public sealed class GetMember : MemberUnit { public GetMember() { } public GetMember(Member member) : base(member) { } [DoNotSerialize] [MemberFilter(Fields = true, Properties = true, WriteOnly = false)] public Member getter { get { return member; } set { member = value; } } [DoNotSerialize] [PortLabelHidden] public ValueOutput value { get; private set; } protected override void Definition() { base.Definition(); value = ValueOutput(member.type, nameof(value), Value); if (member.isPredictable) { value.Predictable(); } if (member.requiresTarget) { Requirement(target, value); } } protected override bool IsMemberValid(Member member) { return member.isAccessor && member.isGettable; } private object Value(Flow flow) { var target = member.requiresTarget ? flow.GetValue(this.target, member.targetType) : null; return member.Get(target); } #region Analytics public override AnalyticsIdentifier GetAnalyticsIdentifier() { var aid = new AnalyticsIdentifier { Identifier = $"{member.targetType.FullName}.{member.name}(Get)", Namespace = member.targetType.Namespace }; aid.Hashcode = aid.Identifier.GetHashCode(); return aid; } #endregion } }