Beispiel #1
0
        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));
                }
            }
        }
Beispiel #2
0
        private static bool IsConstructorParameter(ObjectSerializationInfo objectSerializationInfo, MemberSerializationInfo member)
        {
            foreach (var parameter in objectSerializationInfo.ConstructorParameters)
            {
                if (parameter.Equals(member))
                {
                    return(true);
                }
            }

            return(false);
        }