Beispiel #1
0
 /// <summary>
 /// Set the avatar sprites to match the charactistics of this Avatar and the AvatarMood provided
 /// </summary>
 public void SetAvatar(Avatar avatar, AvatarMood mood)
 {
     SetAvatar(avatar);
     UpdateMood(mood);
 }
Beispiel #2
0
    /// <summary>
    /// Load the images for each part of the avatar.
    /// </summary>
    private void SetAvatar(Avatar avatar)
    {
        _avatar = avatar;
        if (!_body)
        {
            _spriteParent = transform.FindRect(_avatarIconPrefix);
            _isIcon       = true;
            if (!_spriteParent)
            {
                _spriteParent = transform.FindRect(_avatarPrefix);
                _isIcon       = false;
            }

            _body            = GetAvatarImage("Body");
            _hairBack        = GetAvatarImage("HairBack");
            _hairFront       = GetAvatarImage("HairFront");
            _eyebrow         = GetAvatarImage("Eyebrows");
            _nose            = GetAvatarImage("Nose");
            _mouth           = GetAvatarImage("Mouth");
            _teeth           = GetAvatarImage("Teeth");
            _eyes            = GetAvatarImage("Eyes");
            _eyePupils       = GetAvatarImage("Eye Pupils");
            _outfit          = GetAvatarImage("Outfit");
            _outfitHighlight = GetAvatarImage("OutfitHighlight");
            _outfitShadow    = GetAvatarImage("OutfitShadow");
        }
        _body.sprite   = avatarSprites[avatar.BodyType];
        _outfit.sprite = avatarSprites[avatar.OutfitBaseType];
        if (avatarSprites.ContainsKey(avatar.OutfitHighlightType))
        {
            _outfitHighlight.sprite = avatarSprites[avatar.OutfitHighlightType];
        }
        if (avatarSprites.ContainsKey(avatar.OutfitShadowType))
        {
            _outfitShadow.sprite = avatarSprites[avatar.OutfitShadowType];
        }
        _nose.sprite      = avatarSprites[avatar.NoseType];
        _hairBack.sprite  = avatarSprites[$"{avatar.HairType}_Back"];
        _hairFront.sprite = avatarSprites[$"{avatar.HairType}_Front"];

        // Set colors
        var skinColor    = new Color32(avatar.SkinColor.R, avatar.SkinColor.G, avatar.SkinColor.B, 255);
        var eyeColor     = new Color32(avatar.EyeColor.R, avatar.EyeColor.G, avatar.EyeColor.B, 255);
        var hairColor    = new Color32(avatar.HairColor.R, avatar.HairColor.G, avatar.HairColor.B, 255);
        var eyebrowColor = new Color32(avatar.HairColor.R, avatar.HairColor.G, avatar.HairColor.B, _eyebrowAlpha);

        var primary   = new Color32(avatar.PrimaryOutfitColor.R, avatar.PrimaryOutfitColor.G, avatar.PrimaryOutfitColor.B, avatar.PrimaryOutfitColor.A);
        var secondary = new Color32(avatar.SecondaryOutfitColor.R, avatar.SecondaryOutfitColor.G, avatar.SecondaryOutfitColor.B, avatar.SecondaryOutfitColor.A);

        _body.color = skinColor;
        _nose.color = skinColor;

        _mouth.color     = avatar.IsMale ? skinColor : (Color32)Color.white;
        _eyePupils.color = eyeColor;
        _hairFront.color = hairColor;
        _hairBack.color  = hairColor;
        _eyebrow.color   = eyebrowColor;

        // Check the current outfit is not the casual one, we should not be changing the color of casual
        if (avatar.CustomOutfitColor)
        {
            _outfit.color          = primary;
            _outfitHighlight.color = secondary;
        }
        else
        {
            _outfit.color          = Color.white;
            _outfitHighlight.color = Color.white;
        }

        _outfitHighlight.gameObject.Active(avatar.CustomOutfitColor);
        _outfitShadow.gameObject.Active(avatar.CustomOutfitColor);

        if (_isIcon)
        {
            SetIconProperties();
        }
        else
        {
            SetFullBodyProperties();
        }
    }
Beispiel #3
0
 /// <summary>
 /// Set the avatar sprites to match the charactistics of this Avatar and the mood value provided
 /// </summary>
 public void SetAvatar(Avatar avatar, float mood)
 {
     SetAvatar(avatar);
     UpdateMood(mood);
 }