private void Start() { wfxMeshMaterialEffect = GetComponent <WFX_MeshMaterialEffect>(); InitDefaultVariables(); isInizialised = true; isVisible = true; Play(); }
Material[] AddToSharedMaterial(Material[] sharedMaterials, WFX_MeshMaterialEffect meshMatEff, bool isFirst) { meshMatEff.Material = new Material(meshMatEff.Material); meshMatEff.Material.name = meshMatEff.Material.name + " (Instance)"; if (isFirst) { return(new[] { meshMatEff.Material }); } var matsCopyNew = new Material[sharedMaterials.Length + 1]; sharedMaterials.CopyTo(matsCopyNew, 0); matsCopyNew[matsCopyNew.Length - 1] = meshMatEff.Material; return(matsCopyNew); }
Material[] AddToSharedMaterial(Material[] sharedMaterials, WFX_MeshMaterialEffect meshMatEffect) { if (meshMatEffect.IsFirstMaterial) { return new[] { meshMatEffect.Material } } ; var materials = sharedMaterials.ToList(); for (int i = 0; i < materials.Count; i++) { if (materials[i].name.Contains(materialName)) { materials.RemoveAt(i); } } //meshMatEffect.Material.name = meshMatEffect.Material.name + materialName; materials.Add(meshMatEffect.Material); return(materials.ToArray()); } void OnDestroy() { Activation(true); if (MeshObject == null) { return; } var meshRenderers = MeshObject.GetComponentsInChildren <MeshRenderer>(); var skinMeshRenderers = MeshObject.GetComponentsInChildren <SkinnedMeshRenderer>(); for (int i = 0; i < meshRenderers.Length; i++) { if (rendererMaterials.Count == meshRenderers.Length) { meshRenderers[i].sharedMaterials = rendererMaterials[i]; } var materials = meshRenderers[i].sharedMaterials.ToList(); for (int j = 0; j < materials.Count; j++) { if (materials[j].name.Contains(materialName)) { materials.RemoveAt(j); } } meshRenderers[i].sharedMaterials = materials.ToArray(); } for (int i = 0; i < skinMeshRenderers.Length; i++) { if (skinnedMaterials.Count == skinMeshRenderers.Length) { skinMeshRenderers[i].sharedMaterials = skinnedMaterials[i]; } var materials = skinMeshRenderers[i].sharedMaterials.ToList(); for (int j = 0; j < materials.Count; j++) { if (materials[j].name.Contains(materialName)) { materials.RemoveAt(j); } } skinMeshRenderers[i].sharedMaterials = materials.ToArray(); } rendererMaterials.Clear(); skinnedMaterials.Clear(); } }