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(); } }