private static void FillProperties(Dictionary <string, string> simpleValues, Dictionary <string, FileID> referenceValues, OneToListMap <MonoBehaviourProperty, MonoBehaviourPropertyValue> result) { var anchor = simpleValues.GetValueSafe("&anchor"); if (anchor == null) { return; } var guid = referenceValues.GetValueSafe(UnityYamlConstants.ScriptProperty)?.guid; if (guid == null) { return; } var gameObject = referenceValues.GetValueSafe(UnityYamlConstants.GameObjectProperty)?.fileID; if (gameObject == null) { return; } foreach (var(fieldName, value) in simpleValues) { if (ourIgnoredMonoBehaviourEntries.Contains(fieldName)) { continue; } var property = new MonoBehaviourProperty(guid, fieldName); var propertyValue = new MonoBehaviourPrimitiveValue(value, anchor, gameObject); result.Add(property, propertyValue); } foreach (var(fieldName, value) in referenceValues) { if (ourIgnoredMonoBehaviourEntries.Contains(fieldName)) { continue; } var property = new MonoBehaviourProperty(guid, fieldName); var propertyValue = new MonoBehaviourReferenceValue(value, anchor, gameObject); result.Add(property, propertyValue); } }
public static MonoBehaviourPropertyValue Read(UnsafeReader reader) { var type = reader.ReadInt32(); switch (type) { case 0: return(MonoBehaviourReferenceValue.ReadFrom(reader)); case 1: return(MonoBehaviourPrimitiveValue.ReadFrom(reader)); default: throw new InvalidOperationException(); } }
protected bool Equals(MonoBehaviourReferenceValue other) { return(base.Equals(other) && Reference.Equals(other.Reference)); }