示例#1
0
        /// <inheritdoc/>
        protected override void ApplyValuesToFields(object[] values)
        {
            if (Inspector.State.usingLocalSpace)
            {
                base.ApplyValuesToFields(values);
                return;
            }

            // Can't write to field when using LinkedMemberInfo, because lossyScale property is get-only.
            // Convert to localScale and write directly to transform targets instead.
            var targets = UnityObjects;

                        #if DEV_MODE && PI_ASSERTATIONS
            Debug.Assert(values.Length == targets.Length);
                        #endif

            bool changed = false;
            for (int n = targets.Length - 1; n >= 0; n--)
            {
                var transform     = targets[n] as Transform;
                var setLossyScale = (Vector3)values[n];
                if (!ValuesAreEqual(transform.lossyScale, setLossyScale))
                {
                    if (!changed)
                    {
                        changed = true;
                        UndoHandler.RegisterUndoableAction(targets, UndoHandler.GetSetValueMenuText(Name));
                    }
                    transform.SetWorldScale(setLossyScale);
                }
            }
        }
示例#2
0
        /// <inheritdoc/>
        protected override void ApplyValueToField()
        {
            if (Inspector.State.usingLocalSpace)
            {
                base.ApplyValueToField();
                return;
            }

            bool changed = false;

            var setLossyScale = Value;

            // Can't write to field when using LinkedMemberInfo, because lossyScale property is get-only.
            // Convert to localScale and write directly to transform targets instead.
            var targets = UnityObjects;

            for (int n = targets.Length - 1; n >= 0; n--)
            {
                var transform = targets[n] as Transform;
                if (!ValuesAreEqual(transform.lossyScale, setLossyScale))
                {
                    if (!changed)
                    {
                        changed = true;
                        UndoHandler.RegisterUndoableAction(targets, UndoHandler.GetSetValueMenuText(Name));
                    }
                    transform.SetWorldScale(setLossyScale);
                }
            }
        }
示例#3
0
        /// <inheritdoc/>
        protected override void ApplyValuesToFields(object[] values)
        {
            if (Inspector.State.usingLocalSpace || !(parent is ScaleDrawer))
            {
                base.ApplyValuesToFields(values);
                return;
            }

                        #if DEV_MODE
            Debug.Log(ToString() + ".WriteToField(" + StringUtils.ToString(values) + ") with world space");
                        #endif

            bool changed = false;

            // Can't write to field when using LinkedMemberInfo, because lossyScale property is get-only.
            // Convert to localScale and write directly to transform targets instead.
            var targets = UnityObjects;
            for (int n = targets.Length - 1; n >= 0; n--)
            {
                var   transform     = targets[n] as Transform;
                var   setLossyScale = transform.lossyScale;
                float value         = (float)values[n];
                if (transform.lossyScale[memberIndex] != value)
                {
                    if (!changed)
                    {
                        changed = true;
                        UndoHandler.RegisterUndoableAction(targets, UndoHandler.GetSetValueMenuText(parent.Name));
                    }

                    setLossyScale[memberIndex] = value;
                    transform.SetWorldScale(setLossyScale);
                }
            }
        }
示例#4
0
 private void SetMinute(int set)
 {
     if (Minute != set && set >= 0 && set < 60)
     {
         var setValue = new DateTime(Year, Month, Day, Hour, set, Second, Millisecond);
         UndoHandler.RegisterUndoableAction(memberInfo, setValue, UndoHandler.GetSetValueMenuText("Minute"), true);
         SetValue(setValue, !ReadOnly, false);
     }
 }
示例#5
0
 private void SetHour(int set)
 {
     if (Hour != set && set >= 0 && set <= DateTime.MaxValue.Hour)
     {
         var setValue = new DateTime(Year, Month, Day, set, Minute, Second, Millisecond);
         UndoHandler.RegisterUndoableAction(memberInfo, setValue, UndoHandler.GetSetValueMenuText("Hour"), true);
         SetValue(setValue, !ReadOnly, false);
     }
 }
示例#6
0
 private void SetDay(int set)
 {
     if (Day != set && set >= 1 && set <= DateTime.DaysInMonth(Year, Month))
     {
         var setValue = new DateTime(Year, Month, set, Hour, Minute, Second, Millisecond);
         UndoHandler.RegisterUndoableAction(memberInfo, setValue, UndoHandler.GetSetValueMenuText("Day"), true);
         SetValue(setValue, !ReadOnly, false);
     }
 }
示例#7
0
        private void SetSeconds(float set)
        {
            if (SecondWithFractions != set && set >= 0 && set <= 60)
            {
                int s  = Mathf.FloorToInt(set);
                int ms = Mathf.RoundToInt((set - s) * 1000f);

                var setValue = new DateTime(Year, Month, Day, Hour, Minute, s, ms);
                UndoHandler.RegisterUndoableAction(memberInfo, setValue, UndoHandler.GetSetValueMenuText("Second"), true);
                SetValue(setValue, !ReadOnly, false);
            }
        }