1 year ago

Само изящество


		
			using UnityEngine;
using UnityEngine.UI;

public class WeaponPick : MonoBehaviour
{
    [SerializeField] private Image[] weaponIcons;

    [SerializeField] private Sprite[] weaponSprites;

    private const byte weaponCount = 7;

    private byte[] weaponSlots = new byte[4];

    [SerializeField] private string[] weaponKeys = new string[4];

    [SerializeField] private string[] weaponAvailabilityKeysNames;

    private void Awake()
    {
        for (int i = 0; i < 4; i++)
        {
            weaponSlots[i] = (byte)PlayerPrefs.GetInt(weaponKeys[i], 0);
            UpdateWeaponIcon((byte)i);
        }
    }

    public void increment(int slotNumber)
    {
        for (int i = 0; i < weaponCount; i++)
        {
            weaponSlots[slotNumber] = (byte)((weaponSlots[slotNumber] + 1) % weaponCount);

            if (WeaponAvailabilityCheck((byte)slotNumber))
            {
                break;
            }
        }

        UpdateWeaponIcon((byte)slotNumber);
        SavePick((byte)slotNumber);
    }

    public void decrement(int slotNumber)
    {
        for (int i = 0; i < weaponCount; i++)
        {
            weaponSlots[slotNumber] = (byte)((weaponSlots[slotNumber] - 1 + weaponCount) % weaponCount);

            if (WeaponAvailabilityCheck((byte)slotNumber))
            {
                break;
            }
        }

        UpdateWeaponIcon((byte)slotNumber);
        SavePick((byte)slotNumber);
    }

    private bool WeaponAvailabilityCheck(byte slotNumber)
    {
        return PlayerPrefs.GetInt(weaponAvailabilityKeysNames[weaponSlots[slotNumber]]) == 1;
    }

    private void SavePick(byte slotNumber)
    {
        PlayerPrefs.SetInt(weaponKeys[slotNumber], weaponSlots[slotNumber]);
        PlayerPrefs.Save();
    }

    private void UpdateWeaponIcon(byte slotNumber)
    {
        weaponIcons[slotNumber].sprite = weaponSprites[weaponSlots[slotNumber]];
        weaponIcons[slotNumber].SetNativeSize();
    }
}
		
	


5 comments

Loading...

Next up

С этого я буквально ржал в голосину. Лион просит русский выучить... ЛИОН!

Действительно. С чего это вдруг фунт — не евро?

Сколько часов в день ты проводишь в Lion Play Pro Gamer?

Тест эффекта шагов

Мне тоже эту пурри форнушку рекламируют. Неужели Ютуб следит за нами ещё и через через гж, каким-то образом?

Inverted Castle

Castlevania Symphony Of The Night fanart

Снился мне сегодня такой сон:

Именно этим я и занимаюсь...

Внутриигровое обучение. Как вам?

Немного концептуальной информации об игре: