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();
}
}
13 days ago
Само изящество
Next up
Недавно придумал такой мем
Поздравляю всех с наступающим или уже наступившим Новым годом!
no pain no gain
Смотрите что я смастерил
Я знаю что в игре маленькая графика, он делался по нейроны сетя
5 comments