Пример #1
0
        public static void ChangeHairColor(uint playerID, uint hairCutIndex, uint hairColorIndex, CharacterEntity characterEntity)
        {
            if (characterEntity == null)
            {
                return;
            }

            PlayerData playerData    = PlayerData.GetPlayerData(playerID);
            AvatarData avatarData    = AvatarData.GetAvatarData(playerData.avatarID);
            string     hairColorPath = avatarData.GetHairColorPathByIndex(hairColorIndex);
            Texture    hairTexture   = ResMgr.instance.Load <Texture>(hairColorPath);

            if (!hairTexture)
            {
                return;
            }
            Texture   hairInfoTexture = ResMgr.instance.Load <Texture>(hairColorPath + "_info");
            string    hairName        = HEAD_NODE_NAMES[hairCutIndex];
            Transform t = TransformUtil.Find(hairName, characterEntity.transform, true);

            if (t)
            {
                Renderer renderer = t.GetComponentInChildren <Renderer>();
                if (renderer)
                {
                    //#if UNITY_EDITOR
                    renderer.material.mainTexture = hairTexture;
                    if (hairInfoTexture)
                    {
                        renderer.material.SetTexture("_InfoTex", hairInfoTexture);
                    }
                    //#else
                    //                            renderer.material.mainTexture = hairTexture;
                    //                            renderer.material.SetTexture("_InfoTex", hairInfoTexture);
                    //#endif
                }
            }
        }