private void CreateMenuTree(bool force) { if (force || (this.targetType != null && this.serializationInfoTree == null)) { EditorPrefs.SetString(TargetTypePrefKey, TwoWaySerializationBinder.Default.BindToName(this.targetType)); this.backendFlags = this.targetType.IsDefined <ShowOdinSerializedPropertiesInInspectorAttribute>(true) ? SerializationBackendFlags.UnityAndOdin : SerializationBackendFlags.Unity; var infos = MemberSerializationInfo.CreateSerializationOverview(this.targetType, this.backendFlags, this.odinContext); this.serializationInfoTree = new OdinMenuTree(false); this.serializationInfoTree.DefaultMenuStyle.Offset = (SerializationInfoMenuItem.IconSpacing * 2 + SerializationInfoMenuItem.IconSize) * 2 + SerializationInfoMenuItem.IconSpacing * 2; this.serializationInfoTree.DefaultMenuStyle.Height = 27; this.serializationInfoTree.DefaultMenuStyle.BorderPadding = 0; this.serializationInfoTree.Config.DrawSearchToolbar = true; this.serializationInfoTree.Config.AutoHandleKeyboardNavigation = true; foreach (var item in infos) { this.serializationInfoTree.MenuItems.Add(new SerializationInfoMenuItem(this.serializationInfoTree, item.MemberInfo.Name, item)); } } }
private static bool IsConstructorParameter(ObjectSerializationInfo objectSerializationInfo, MemberSerializationInfo member) { foreach (var parameter in objectSerializationInfo.ConstructorParameters) { if (parameter.Equals(member)) { return(true); } } return(false); }