private void Start()
 {
     wfxMeshMaterialEffect = GetComponent <WFX_MeshMaterialEffect>();
     InitDefaultVariables();
     isInizialised = true;
     isVisible     = true;
     Play();
 }
Пример #2
0
    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);
    }
Пример #3
0
    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();
    }
}