public static void ChangeFace(uint playerID, uint faceIndex, CharacterEntity characterEntity) { if (characterEntity != null) { PlayerData playerData = PlayerData.GetPlayerData(playerID); AvatarData avatarData = AvatarData.GetAvatarData(playerData.avatarID); string facePath = avatarData.GetFacePathByIndex(faceIndex); Texture faceTexture = ResMgr.instance.Load <Texture>(facePath); if (!faceTexture) { return; } Renderer[] renderers = characterEntity.gameObject.GetComponentsInChildren <Renderer>(); Renderer renderer = null; int rendererLength = renderers.Length; bool alreadyFind = false; for (int i = 0; i < rendererLength; i++) { renderer = renderers[i]; //#if UNITY_EDITOR Material[] materials = renderer.materials; //#else // Material[] materials = renderer.sharedMaterials; //#endif Material material = null; int materialsLength = materials.Length; for (int materialIndex = 0; materialIndex < materialsLength; materialIndex++) { material = materials[materialIndex]; if (material.name.Contains(FACE_NODE_NAME)) { material.mainTexture = faceTexture; alreadyFind = true; break; } } if (alreadyFind) { break; } } } }