/// <summary> /// Copies the details of this material into another, preserving the target's handle and name /// (unlike operator=) but copying everything else. /// </summary> /// <param name="target">Material which will receive this material's settings.</param> public void CopyTo(Material target, bool copyUniqueInfo) { if (copyUniqueInfo) { target.name = name; target.handle = handle; target.isLoaded = isLoaded; target.isManual = isManual; } // copy basic data target.size = size; target.lastAccessed = lastAccessed; target.receiveShadows = receiveShadows; target.transparencyCastsShadows = transparencyCastsShadows; target.RemoveAllTechniques(); // clone a copy of all the techniques for (int i = 0; i < techniques.Count; i++) { Technique technique = (Technique)techniques[i]; Technique newTechnique = target.CreateTechnique(); technique.CopyTo(newTechnique); // only add this technique to supported techniques if its...well....supported :-) if (newTechnique.IsSupported) { target.InsertSupportedTechnique(newTechnique); } } // clear LOD distances target.lodDistances.Clear(); // copy LOD distances for (int i = 0; i < lodDistances.Count; i++) { target.lodDistances.Add(lodDistances[i]); } target.compilationRequired = compilationRequired; }