예제 #1
0
    public void GenerateCachedSkin()
    {
        // Convert _skinTint (string to Skin.SkinTint)
        currentTint = (Skin.SkinTint)System.Enum.Parse(typeof(Skin.SkinTint), _cachedSkinTint);

        _skinSlider.value = (int)currentTint;

        GenerateCharacterSkin(currentTint, true);
    }
예제 #2
0
 private void GenerateCharacterSkin(Skin.SkinTint tint, bool isNoseTypeCached)
 {
     _headDatabase.GenerateHead(tint);
     _noseDatabase.GenerateNose(tint, isNoseTypeCached);
     _neckDatabase.GenerateNeck(tint);
     _armDatabase.GenerateArms(tint);
     _handDatabase.GenerateHands(tint);
     _legDatabase.GenerateLegs(tint);
 }
예제 #3
0
    private string GenerateHandKey(Skin.SkinTint skinTint)
    {
        int tint = (int)skinTint;

        tint++;

        string handKey = "HandTint_" + tint;

        return(handKey);
    }
예제 #4
0
    private string GenerateLegKey(Skin.SkinTint skinTint)
    {
        int tint = (int)skinTint;

        tint++;

        string legKey = "LegTint_" + tint;

        return(legKey);
    }
예제 #5
0
    private string GenerateArmKey(Skin.SkinTint skinTint)
    {
        int tint = (int)skinTint;

        tint++;

        string armKey = "ArmTint_" + tint;

        return(armKey);
    }
예제 #6
0
    private string GenerateNeckKey(Skin.SkinTint skinTint)
    {
        int tint = (int)skinTint;

        tint++;

        string neckKey = "NeckTint_" + tint;

        return(neckKey);
    }
예제 #7
0
    private string GenerateInvertedHandKey(Skin.SkinTint skinTint)
    {
        int tint = (int)skinTint;

        tint++;

        string invertedHandKey = "HandInvertedTint_" + tint;

        return(invertedHandKey);
    }
예제 #8
0
    private string GenerateHeadKey(Skin.SkinTint skinTint)
    {
        // Get the skin tint and increase by 1 cause the keys start at 1
        int tint = (int)skinTint;

        tint++;

        string headKey = "HeadTint_" + tint;

        return(headKey);
    }
예제 #9
0
    public void GenerateSkin(float skinTint)
    {
        var tint = (Skin.SkinTint)skinTint;

        _skinTint = tint.ToString();

        // Convert _skinTint (string to Skin.SkinTint)
        currentTint = (Skin.SkinTint)System.Enum.Parse(typeof(Skin.SkinTint), _skinTint);

        GenerateCharacterSkin(currentTint, true);
    }
예제 #10
0
    private string GenerateNoseKey(Skin.SkinTint skinTint, int noseType)
    {
        // Get the skin tint and increase by 1 cause the keys start at 1
        int tint = (int)skinTint;

        tint++;

        string noseKey = "NoseTint_" + tint;

        noseKey += "_" + noseType;
        return(noseKey);
    }
예제 #11
0
    public void GenerateNeck(Skin.SkinTint skinTint)
    {
        if (neckDictionary.Count <= 0)
        {
            return;
        }

        ClearNeckInstance();

        string neckKey = GenerateNeckKey(skinTint);
        Neck   neck    = neckDictionary[neckKey];

        _neckInstance      = Instantiate(_neckPrefab, neck.NeckPosition, Quaternion.identity);
        _neckInstance.name = neckKey;
        _neckInstance.GetComponent <SpriteRenderer>().sprite = neck.NeckSprite;
    }
예제 #12
0
    public void GenerateHead(Skin.SkinTint skinTint)
    {
        if (headDictionary.Count <= 0)
        {
            return;
        }

        ClearHeadInstance();

        string headKey = GenerateHeadKey(skinTint);
        Head   head    = headDictionary[headKey];

        _headInstance      = Instantiate(_headPrefab, head.HeadPosition, Quaternion.identity);
        _headInstance.name = headKey;
        _headInstance.GetComponent <SpriteRenderer>().sprite = head.HeadSprite;
    }
예제 #13
0
    public void GenerateNose(Skin.SkinTint skinTint, bool isNoseTypeCached)
    {
        if (noseDictionary.Count <= 0)
        {
            return;
        }

        ClearNoseInstance();

        string noseKey = "";

        if (!isNoseTypeCached)
        {
            noseKey = GenerateNoseKey(skinTint);
            InstantiateNose(noseKey);

            string[] words    = noseKey.Split('_');
            string   noseType = "";

            // Get the shoeType from the shoeKey
            if (words.Length == 3)
            {
                noseType = words[2];
            }

            _slider.Set(int.Parse(noseType));

            _cachedNoseKey = noseKey;
        }
        else
        {
            string[] words    = _cachedNoseKey.Split('_');
            string   noseType = "";

            // Get the shoeType from the shoeKey
            if (words.Length == 3)
            {
                noseType = words[2];
            }

            int noseTypeValue = System.Convert.ToInt32(noseType);
            noseKey = GenerateNoseKey(skinTint, noseTypeValue);

            InstantiateNose(noseKey);
            _cachedNoseKey = noseKey;
        }
    }
예제 #14
0
    public void GenerateSkin()
    {
        //int skinTintCount = System.Enum.GetNames(typeof(Head.SkinTint)).Length;
        int  skinTintCount = 8;
        bool flag          = false;

        //currentTint = (int) _skinTint;
        int randomTint = Random.Range(0, skinTintCount);

        if (_skinTint == "")
        {
            currentTint = (Skin.SkinTint)randomTint;
            _skinTint   = currentTint.ToString();
        }
        else
        {
            var tint = (Skin.SkinTint)randomTint;
            _skinTint = tint.ToString();

            while (!flag)
            {
                if (_skinTint == currentTint.ToString())
                {
                    randomTint = Random.Range(0, skinTintCount);
                    tint       = (Skin.SkinTint)randomTint;
                    _skinTint  = tint.ToString();
                }
                else
                {
                    flag = true;
                }
            }
        }

        _cachedSkinTint = _skinTint;

        // Convert _skinTint (string to Head.SkinTint)
        currentTint = (Skin.SkinTint)System.Enum.Parse(typeof(Skin.SkinTint), _skinTint);

        _skinSlider.Set((int)currentTint);
        GenerateCharacterSkin(currentTint, false);
    }
예제 #15
0
    public void GenerateLegs(Skin.SkinTint skinTint)
    {
        if (legDictionary.Count <= 0 || invertedLegDictionary.Count <= 0)
        {
            return;
        }

        ClearLegsInstance();

        string legKey = GenerateLegKey(skinTint);
        Leg    leg    = legDictionary[legKey];

        _legInstance      = Instantiate(_legPrefab, leg.LegPosition, Quaternion.identity);
        _legInstance.name = legKey;
        _legInstance.GetComponent <SpriteRenderer>().sprite = leg.LegSprite;

        legKey = GenerateInvertedLegKey(skinTint);
        leg    = invertedLegDictionary[legKey];

        _invertedLegInstance      = Instantiate(_legPrefab, leg.LegPosition, Quaternion.Euler(_invertRotation));
        _invertedLegInstance.name = legKey;
        _invertedLegInstance.GetComponent <SpriteRenderer>().sprite = leg.LegSprite;
    }
예제 #16
0
    public void GenerateArms(Skin.SkinTint skinTint)
    {
        if (armDictionary.Count <= 0 || invertedArmDictionary.Count <= 0)
        {
            return;
        }

        ClearArmsInstance();

        string armKey = GenerateArmKey(skinTint);
        Arm    arm    = armDictionary[armKey];

        _armInstance      = Instantiate(_armPrefab, arm.ArmPosition, Quaternion.identity);
        _armInstance.name = armKey;
        _armInstance.GetComponent <SpriteRenderer>().sprite = arm.ArmSprite;

        armKey = GenerateInvertedArmKey(skinTint);
        arm    = invertedArmDictionary[armKey];

        _invertedArmInstance      = Instantiate(_armPrefab, arm.ArmPosition, Quaternion.Euler(_invertRotation));
        _invertedArmInstance.name = armKey;
        _invertedArmInstance.GetComponent <SpriteRenderer>().sprite = arm.ArmSprite;
    }
예제 #17
0
    public void GenerateHands(Skin.SkinTint skinTint)
    {
        if (handDictionary.Count <= 0 || invertedHandDictionary.Count <= 0)
        {
            return;
        }

        ClearHandsInstance();

        string handKey = GenerateHandKey(skinTint);
        Hand   hand    = handDictionary[handKey];

        _handInstance      = Instantiate(_handPrefab, hand.HandPosition, Quaternion.identity);
        _handInstance.name = handKey;
        _handInstance.GetComponent <SpriteRenderer>().sprite = hand.HandSprite;

        handKey = GenerateInvertedHandKey(skinTint);
        hand    = invertedHandDictionary[handKey];

        _invertedHandInstance      = Instantiate(_handPrefab, hand.HandPosition, Quaternion.Euler(_invertRotation));
        _invertedHandInstance.name = handKey;
        _invertedHandInstance.GetComponent <SpriteRenderer>().sprite = hand.HandSprite;
    }