Ejemplo n.º 1
0
        /// <inheritdoc />
        protected override void DoBuildMembers()
        {
                        #if DEV_MODE
            Debug.Log(ToString() + ".DoBuildMembers()");
                        #endif

            ParentDrawerUtility.BuildMembers(DrawerProvider, this, memberBuildList, ref members);

            if (inspector.Preferences.drawScriptReferenceFields || DebugMode)
            {
                var monoScript = MonoScript;
                if (monoScript != null)
                {
                    DrawerArrayPool.InsertAt(ref members, 0, ScriptReferenceDrawer.Create(MonoScript, this, false), true);
                }
            }

            if (DebugMode && (members.Length == 0 || !(members[0] is DebugModeDisplaySettingsDrawer)))
            {
                                #if DEV_MODE
                Debug.Log("InsertAt(0, DebugModeDisplaySettingsDrawer)");
                                #endif

                DrawerArrayPool.InsertAt(ref members, 0, SpaceDrawer.Create(7f, this), true);
                DrawerArrayPool.InsertAt(ref members, 0, DebugModeDisplaySettingsDrawer.Create(this, debugModeDisplaySettings), true);
                DrawerArrayPool.InsertAt(ref members, 0, SpaceDrawer.Create(7f, this), true);
            }

                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(!members.ContainsNullMembers());
                        #endif
        }
Ejemplo n.º 2
0
        /// <summary> Creates a new instance of the drawer or returns a reusable instance from the pool. </summary>
        /// <param name="monoScript"> The MonoScript which the drawer points to. </param>
        /// <param name="parent"> The parent drawer of the created drawer. Can be null. </param>
        /// <param name="readOnly"> True if control should be read only. </param>
        /// <returns> The instance, ready to be used. </returns>
        public static ScriptReferenceDrawer Create([CanBeNull] MonoScript monoScript, [CanBeNull] IParentDrawer parent, bool readOnly)
        {
            ScriptReferenceDrawer result;

            if (!DrawerPool.TryGet(out result))
            {
                result = new ScriptReferenceDrawer();
            }
            result.Setup(monoScript, typeof(MonoScript), null, parent, null, readOnly);
            result.LateSetup();
            return(result);
        }
Ejemplo n.º 3
0
        /// <inheritdoc />
        protected override void DoBuildMembers()
        {
                        #if DEV_MODE
            Debug.Log(ToString() + ".DoBuildMembers()");
                        #endif

            ParentDrawerUtility.BuildMembers(DrawerProvider, this, memberBuildList, ref members);

                        #if UNITY_EDITOR
            if (Platform.EditorMode && (inspector.Preferences.drawScriptReferenceFields || DebugMode))
            {
                var monoScript = MonoScript;
                if (monoScript != null)
                {
                    DrawerArrayPool.InsertAt(ref members, 0, ScriptReferenceDrawer.Create(MonoScript, this, false), true);
                }
            }
                        #endif
        }
Ejemplo n.º 4
0
        /// <inheritdoc/>
        protected override void DoBuildMembers()
        {
            if (parent == null)
            {
                return;
            }

                        #if UNITY_EDITOR
            DrawerArrayPool.Resize(ref members, 2);
            var scriptReference = ScriptReferenceDrawer.Create(monoScript, this, monoScript != null);
            scriptReference.OnValueChanged += SetMonoScript;
            members[0] = scriptReference;
            int index = 1;
                        #else
            int index = 0;
                        #endif

            DrawerArrayPool.Resize(ref members, index + 1);

            members[index] = BoxDrawer.Create(this, GUIContentPool.Create(GetWarningMessage()), MessageType.Warning, ReadOnly);
        }