/* * Update skin mesh materials and shaders */ public void SetShader(TextureShaderType shader) { var materialInfo = GetShaderMaterial(shader); if (materialInfo == null) { return; } CurrentCharacterShader = shader; CharacterShaders[characterRace] = shader; var material = materialInfo.material; material.mainTexture = mergedTexture; foreach (var render in modelRenderers) { render.material = material; } var cloakMaterial = materialInfo.cloakMaterial; cloakMaterial.mainTexture = GetCloakTexture(); foreach (var render in cloakRenderers) { render.material = cloakMaterial; } }
/* * Update mesh materials and shaders */ public void SetShader(TextureShaderType shader) { var materialInfo = TextureManager.Instance.GetShaderMaterial(shader); if (materialInfo == null) { return; } var material = materialInfo.meshMaterial; material.mainTexture = armorTexture; foreach (var mesh in currentCharacterMeshes.Values) { foreach (var meshObject in mesh.Meshes) { foreach (var render in meshObject.GetComponentsInChildren <MeshRenderer>()) { if (IsDynamicTextureAtlas()) { var texture = render.sharedMaterial.mainTexture; render.material = material; render.material.mainTexture = texture; } else { render.material = material; } } } } }
public MaterialInfo GetShaderMaterial(TextureShaderType shader) { foreach (var mat in _materials) { if (mat.shader == shader) { return(mat); } } return(null); }