Пример #1
0
        public static MaterialMotion[] IsUpdatedBy(Material pMaterial)
        {
            HashSet <MaterialMotion> updatingTheMaterial = new HashSet <MaterialMotion>();

            foreach (var motion in motions)
            {
                foreach (var layer in motion.mLayers)
                {
                    Material m = motion.GetComponent <Renderer>().sharedMaterials[layer.mMaterialID];
                    if (m != null && m == pMaterial)
                    {
                        updatingTheMaterial.Add(motion);
                    }
                }
            }

            MaterialMotion[] result = new MaterialMotion[updatingTheMaterial.Count];
            updatingTheMaterial.CopyTo(result);
            return(result);
        }
        void OnEnable()
        {
            if (icon == null)
            {
                icon           = new Texture2D(1, 1);
                icon.hideFlags = HideFlags.HideAndDontSave;

                string s = EditorGUIUtility.isProSkin? iconStringPro : iconStringFree;
                icon.LoadImage(System.Convert.FromBase64String(s));
            }

            mMaterialMotion = target as MaterialMotion;

            mAlwaysUpdate = serializedObject.FindProperty("mUpdate");
            mMotionLayers = serializedObject.FindProperty("mLayers");

            if (mMotionLayers.arraySize == 0)
            {
                mMaterialMotion.AddLayer();
                serializedObject.Update();
            }
        }