コード例 #1
0
        public void ApplyIfChanged(IList objects, EditorSceneBase scene = null)
        {
            var infos = new List <EditorSceneBase.RevertableMassPropertyChange <TObject, TValue> .Info>();

            if (Value != prevValue)
            {
                for (int i = 0; i < objects.Count; i++)
                {
                    var value = getter((TObject)objects[i]);

                    if (!value.Equals(Value.SharedValue))
                    {
                        infos.Add(new EditorSceneBase.RevertableMassPropertyChange <TObject, TValue> .Info((TObject)objects[i], value));

                        setter((TObject)objects[i], Value.SharedValue);
                    }
                }

                prevValue = Value;

                if (infos.Count > 0)
                {
                    scene?.AddToUndo(new EditorSceneBase.RevertableMassPropertyChange <TObject, TValue>(getter, setter, infos.ToArray()));
                }
            }
        }
コード例 #2
0
        public void Update(IList objects)
        {
            Multiple <TValue> res = getter((TObject)objects[0]);

            for (int i = 0; i < objects.Count; i++)
            {
                if (res != getter((TObject)objects[i]))
                {
                    Value = new Multiple <TValue>();
                    return;
                }
            }

            prevValue = res;
            Value     = res;
        }
コード例 #3
0
 public MultipleVector3(Multiple <float> x, Multiple <float> y, Multiple <float> z)
 {
     X = x;
     Y = y;
     Z = z;
 }