-
Notifications
You must be signed in to change notification settings - Fork 2
develop OptionUI
- OptionUI는 Prefab이다.
-
알게된 점 : Time.timeScale이 0이면 게임이 멈추고 1이면 1배속으로 게임 시간이 흘러간다.
-
변수 선언
[SerializeField] MiniLevels[] mWeaponLevelsUI; // Items의 Weapon의 Level을 표시해주는 Object
[SerializeField] Image[] mOwnWeaponImages; // Items의 Weapon의 Image를 표시해주는 Object
[SerializeField] MiniLevels[] mAccessoryLevelsUI; // Items의 Accessory의 Level을 표시해주는 Object
[SerializeField] Image[] mOwnAccessoryImages; // Items의 Accessory의 Image를 표시해주는 Object
[SerializeField] GameObject mItemUI; // Items Object
[SerializeField] GameObject mStatUI; // Stat Object
[SerializeField] GameObject mOptionPageUI; // OptionPage Object
[SerializeField] GameObject mOptionButtonUI; // Option(옵션) Button Object
[SerializeField] GameObject mBackButtonUI; // Back(계속하기) Button Object
[SerializeField] GameObject mQuitButtonUI; // Quit(종료) Button Object
[SerializeField] GameObject mPlayer; // Player Object
[SerializeField] TextMeshProUGUI mStatVarText; // Stat Value를 표시하는 Object
[SerializeField] Sprite[] mWeaponImages; // Weapon별 이미지
[SerializeField] Sprite[] mAccessoryImages; // Accessory별 이미지
[SerializeField] Sprite[] mEtcImages; // etc별 이미지
[SerializeField] Sprite[] mMiniLevelImages; // MiniLevel의 이미지
- Scene이 시작시 OptionUI를 감추는 코드
private void Awake()
{
mItemUI.SetActive(false);
mStatUI.SetActive(false);
mOptionPageUI.SetActive(false);
mOptionButtonUI.SetActive(false);
mBackButtonUI.SetActive(false);
mQuitButtonUI.SetActive(false);
UnSetItemUI();
}
- Esc키를 이용해 OptionUI를 열고 닫는 코드
private void Update()
{
if(Input.GetKeyDown(KeyCode.Escape))
{
if(!mbPauseGame)
{
var weapons = GameManager.instance.EquipManageSys.Weapons;
var accessories = GameManager.instance.EquipManageSys.Accessories;
var characterStats = GameManager.instance.CharacterStats;
Time.timeScale = 0f; // 시간을 멈추게 하는 코드
mItemUI.SetActive(true);
mStatUI.SetActive(true);
mOptionButtonUI.SetActive(true);
mBackButtonUI.SetActive(true);
SetItemUI(weapons, accessories);
SetStatUI(characterStats);
mPlayer.GetComponent<PlayerMovement>().enabled = false;
mbPauseGame = true;
}
else
{
mItemUI.SetActive(false);
mStatUI.SetActive(false);
mOptionPageUI.SetActive(false);
mOptionButtonUI.SetActive(false);
mBackButtonUI.SetActive(false);
mQuitButtonUI.SetActive(false);
Time.timeScale = 1f; // 시간을 다시 흐르게 하는 코드
mPlayer.GetComponent<PlayerMovement>().enabled = true;
mbPauseGame = false;
}
}
}
- 계속하기 버튼이 실행하는 Resume 코드
public void Resume()
{
if(EventSystem.current.IsPointerOverGameObject())
{
mItemUI.SetActive(false);
mStatUI.SetActive(false);
mOptionPageUI.SetActive(false);
mOptionButtonUI.SetActive(false);
mBackButtonUI.SetActive(false);
mQuitButtonUI.SetActive(false);
Time.timeScale = 1f;
mPlayer.GetComponent<PlayerMovement>().enabled = true;
}
}
- Items를 세팅하는 코드
public void SetItemUI(List<Weapon> weapons, List<Accessory> accessories)
{
SetWeaponUI(weapons);
SetAccessoryUI(accessories);
}
private void SetWeaponUI(List<Weapon> weapons)
{
for (int i = 0; i < weapons.Count; i++)
{
mOwnWeaponImages[i].sprite = mWeaponImages[weapons[i].WeaponIndex];
mOwnWeaponImages[i].enabled = true;
int j = 0;
for (; j < weapons[i].WeaponLevel; j++)
{
mWeaponLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[1];
mWeaponLevelsUI[i].MiniLevel[j].enabled = true;
}
for (; j < weapons[i].WeaponMaxLevel; j++)
{
mWeaponLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[0];
mWeaponLevelsUI[i].MiniLevel[j].enabled = true;
}
}
}
private void SetAccessoryUI(List<Accessory> accessories)
{
for (int i = 0; i < accessories.Count; i++)
{
mOwnAccessoryImages[i].sprite = mAccessoryImages[accessories[i].AccessoryIndex];
mOwnAccessoryImages[i].enabled = true;
int j = 0;
for (; j < accessories[i].AccessoryLevel; j++)
{
mAccessoryLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[1];
mAccessoryLevelsUI[i].MiniLevel[j].enabled = true;
}
for (; j < accessories[i].AccessoryMaxLevel; j++)
{
mAccessoryLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[0];
mAccessoryLevelsUI[i].MiniLevel[j].enabled = true;
}
}
}
public void SetStatUI(float[] characterStats)
{
mStatVarText.text =
(GameManager.instance.CharacterData.MaxHealth * characterStats[(int)Enums.EStat.MaxHealth]).ToString() + "\n" +
((int)(characterStats[(int)Enums.EStat.Recovery] * 10) == 0 ? "-" : "+" +(characterStats[(int)Enums.EStat.Recovery]).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Armor]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Armor])).ToString()) + "\n" +
((int)((characterStats[(int)Enums.EStat.MoveSpeed] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.MoveSpeed] - 1) * 100 )).ToString() + "%") + "\n\n" +
((int)((characterStats[(int)Enums.EStat.Might] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Might] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.ProjectileSpeed] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.ProjectileSpeed] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Duration] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Duration] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Area] - 1) * 100 ) == 0 ? "-" : ((int)((characterStats[(int)Enums.EStat.Area] - 1)) == 0 ? "+" + ((int)((characterStats[(int)Enums.EStat.Area] - 1) * 100)).ToString() + "%" : "+" + ((int)(characterStats[(int)Enums.EStat.Area] * 100)).ToString() + "%")) + "\n\n" + // 초기 공격 범위가 1이 아닌 4일 때 즉 400% 일 때 300%로 표기되는 것을 막기 위해서 if문 하나 더 사용
((int)((characterStats[(int)Enums.EStat.Cooldown] - 1) * 100 ) == 0 ? "-" : ((int)((characterStats[(int)Enums.EStat.Cooldown] - 1) * 100 )).ToString() + "%") + "\n" +
((int)(characterStats[(int)Enums.EStat.Amount]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Amount])).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Revival]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Revival])).ToString()) + "\n" +
((int)((characterStats[(int)Enums.EStat.Magnet] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Magnet] - 1) * 100 )).ToString() + "%") + "\n\n" +
((int)((characterStats[(int)Enums.EStat.Luck] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Luck] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Growth] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Growth] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Greed] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Greed] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Curse] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Curse] - 1) * 100 )).ToString() + "%") + "\n\n" +
((int)(characterStats[(int)Enums.EStat.Reroll]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Reroll])).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Skip]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Skip])).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Banish]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Banish])).ToString());
}
- Sound와 EffectSound를 조절하는 코드
private void Start()
{
// 저장된 볼륨 값 로드
SoundManager soundManager = SoundManager.instance;
// defaultPanel의 자식 요소들을 가져와서 슬라이더를 초기화
Slider[] sliders = mOptionPageUI.GetComponentsInChildren<Slider>();
foreach (Slider slider in sliders)
{
switch (slider.name)
{
case "BgmSlider":
slider.value = soundManager.BgmVolume;
slider.onValueChanged.AddListener(OnBgmVolumeChanged);
break;
case "SoundEffectSlider":
slider.value = soundManager.SoundEffectVolume;
slider.onValueChanged.AddListener(OnSoundEffectVolumeChanged);
break;
}
}
}
private void OnBgmVolumeChanged(float value)
{
SoundManager soundManager = SoundManager.instance;
soundManager.BgmVolume = value;
Debug.Log(soundManager.BgmVolume);
}
private void OnSoundEffectVolumeChanged(float value)
{
SoundManager soundManager = SoundManager.instance;
soundManager.SoundEffectVolume = value;
Debug.Log(soundManager.SoundEffectVolume);
}
- OptionUI를 표시할 수 있는 Canvas
UI - Canvas를 선택한다.
InGame Scene에는 UI가 많으니 하나의 Canvas에 UI Prefab을 넣는다.
다음 그림과 같이 적용시킨다.
- OptionUI를 구성하는 parnet Object
- OptionUIManager.cs script와 연결된다.
Create Empty를 선택한다.
다음 그림과 같이 세팅한다.
- 현재 보유하고 있는 무기, 장신구를 표시
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
UI - Image를 선택한다.
다음 그림과 같이 세팅한다.
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
WeaponLevel
Create Empty Children을 선택한다.
Horizontal Layout Group Component를 추가한다.
다음 그림과 같이 세팅한다.
WeaponGrid 6개
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
WeaponMiniLevel 9개
UI - Image를 선택한다.
다음 그림과 같이 세팅한다.
Create Empty Children을 선택한다.
Horizontal Layout Group Component를 추가한다.
다음 그림과 같이 세팅한다.
Weapon 6개
UI - Image를 선택한다.
다음 그림과 같이 세팅한다.
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
AccessoryLevel
Create Empty Children을 선택한다.
Horizontal Layout Group Component를 추가한다.
다음 그림과 같이 세팅한다.
AccessoryGrid 6개
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
AccessoryMiniLevel 9개
UI - Image를 선택한다.
다음 그림과 같이 세팅한다.
Create Empty Children을 선택한다.
Horizontal Layout Group Component를 추가한다.
다음 그림과 같이 세팅한다.
Accessory 6개
UI - Image를 선택한다.
다음 그림과 같이 세팅한다.
- 현재 player의 stat을 표시
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
UI - Image를 선택한다.
다음 그림과 같이 세팅한다.
UI - TextMeshPro를 선택한다.
다음 그림과 같이 세팅한다.
UI - TextMeshPro를 선택한다.
다음 그림과 같이 세팅한다.
- OptionPage 표시
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
UI - Image를 선택한다.
다음 그림과 같이 세팅한다.
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
Label
UI - TextMeshPro를 선택한다.
다음 그림과 같이 세팅한다.
SoundControlBar
UI - Slider를 선택한다.
다음 그림과 같이 세팅한다.
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
Label
UI - TextMeshPro를 선택한다.
다음 그림과 같이 세팅한다.
MusicControlBar
UI - Slider를 선택한다.
다음 그림과 같이 세팅한다.
UI - Toggle을 선택한다.
다음 그림과 같이 세팅한다.
Label
UI - TextMeshPro를 선택한다.
다음 그림과 같이 세팅한다.
Background
다음 그림과 같이 세팅한다.
UI - Toggle을 선택한다.
다음 그림과 같이 세팅한다.
Label
UI - TextMeshPro를 선택한다.
다음 그림과 같이 세팅한다.
Background
다음 그림과 같이 세팅한다.
Create Empty Children을 선택한다.
다음 그림과 같이 세팅한다.
UI - Button-TextMeshPro을 선택한다.
다음 그림과 같이 세팅한다.
Text
UI - Button-TextMeshPro을 선택한다.
다음 그림과 같이 세팅한다.
Text
UI - Button-TextMeshPro을 선택한다.
다음 그림과 같이 세팅한다.
Text
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class OptionUIManager : MonoBehaviour
{
[SerializeField] MiniLevels[] mWeaponLevelsUI;
[SerializeField] Image[] mOwnWeaponImages;
[SerializeField] MiniLevels[] mAccessoryLevelsUI;
[SerializeField] Image[] mOwnAccessoryImages;
[SerializeField] GameObject mItemUI;
[SerializeField] GameObject mStatUI;
[SerializeField] GameObject mOptionPageUI;
[SerializeField] GameObject mOptionButtonUI;
[SerializeField] GameObject mBackButtonUI;
[SerializeField] GameObject mQuitButtonUI;
[SerializeField] GameObject mPlayer;
[SerializeField] TextMeshProUGUI mStatVarText;
[SerializeField] Sprite[] mWeaponImages;
[SerializeField] Sprite[] mAccessoryImages;
[SerializeField] Sprite[] mEtcImages;
[SerializeField] Sprite[] mMiniLevelImages;
private bool mbPauseGame = false;
private void Awake()
{
mItemUI.SetActive(false);
mStatUI.SetActive(false);
mOptionPageUI.SetActive(false);
mOptionButtonUI.SetActive(false);
mBackButtonUI.SetActive(false);
mQuitButtonUI.SetActive(false);
UnSetItemUI();
}
private void Start()
{
// 저장된 볼륨 값 로드
SoundManager soundManager = SoundManager.instance;
// defaultPanel의 자식 요소들을 가져와서 슬라이더를 초기화
Slider[] sliders = mOptionPageUI.GetComponentsInChildren<Slider>();
foreach (Slider slider in sliders)
{
switch (slider.name)
{
case "BgmSlider":
slider.value = soundManager.BgmVolume;
slider.onValueChanged.AddListener(OnBgmVolumeChanged);
break;
case "SoundEffectSlider":
slider.value = soundManager.SoundEffectVolume;
slider.onValueChanged.AddListener(OnSoundEffectVolumeChanged);
break;
}
}
}
private void Update()
{
if(Input.GetKeyDown(KeyCode.Escape))
{
if(!mbPauseGame)
{
var weapons = GameManager.instance.EquipManageSys.Weapons;
var accessories = GameManager.instance.EquipManageSys.Accessories;
var characterStats = GameManager.instance.CharacterStats;
Time.timeScale = 0f;
mItemUI.SetActive(true);
mStatUI.SetActive(true);
mOptionButtonUI.SetActive(true);
mBackButtonUI.SetActive(true);
SetItemUI(weapons, accessories);
SetStatUI(characterStats);
mPlayer.GetComponent<PlayerMovement>().enabled = false;
mbPauseGame = true;
}
else
{
mItemUI.SetActive(false);
mStatUI.SetActive(false);
mOptionPageUI.SetActive(false);
mOptionButtonUI.SetActive(false);
mBackButtonUI.SetActive(false);
mQuitButtonUI.SetActive(false);
Time.timeScale = 1f;
mPlayer.GetComponent<PlayerMovement>().enabled = true;
mbPauseGame = false;
}
}
}
public void Resume()
{
if(EventSystem.current.IsPointerOverGameObject())
{
mItemUI.SetActive(false);
mStatUI.SetActive(false);
mOptionPageUI.SetActive(false);
mOptionButtonUI.SetActive(false);
mBackButtonUI.SetActive(false);
mQuitButtonUI.SetActive(false);
Time.timeScale = 1f;
mPlayer.GetComponent<PlayerMovement>().enabled = true;
}
}
public void UnSetItemUI()
{
foreach (var image in mOwnWeaponImages)
{
image.enabled = false;
}
foreach (var weaponslevel in mWeaponLevelsUI)
{
foreach (var weaponMiniLevel in weaponslevel.MiniLevel)
{
weaponMiniLevel.enabled = false;
}
}
foreach (var image in mOwnAccessoryImages)
{
image.enabled = false;
}
foreach (var accessorieslevel in mAccessoryLevelsUI)
{
foreach (var accessoryMiniLevel in accessorieslevel.MiniLevel)
{
accessoryMiniLevel.enabled = false;
}
}
}
public void SetStatUI(float[] characterStats)
{
mStatVarText.text =
(GameManager.instance.CharacterData.MaxHealth * characterStats[(int)Enums.EStat.MaxHealth]).ToString() + "\n" +
((int)(characterStats[(int)Enums.EStat.Recovery] * 10) == 0 ? "-" : "+" +(characterStats[(int)Enums.EStat.Recovery]).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Armor]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Armor])).ToString()) + "\n" +
((int)((characterStats[(int)Enums.EStat.MoveSpeed] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.MoveSpeed] - 1) * 100 )).ToString() + "%") + "\n\n" +
((int)((characterStats[(int)Enums.EStat.Might] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Might] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.ProjectileSpeed] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.ProjectileSpeed] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Duration] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Duration] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Area] - 1) * 100 ) == 0 ? "-" : ((int)((characterStats[(int)Enums.EStat.Area] - 1)) == 0 ? "+" + ((int)((characterStats[(int)Enums.EStat.Area] - 1) * 100)).ToString() + "%" : "+" + ((int)(characterStats[(int)Enums.EStat.Area] * 100)).ToString() + "%")) + "\n\n" + // 초기 공격 범위가 1이 아닌 4일 때 즉 400% 일 때 300%로 표기되는 것을 막기 위해서 if문 하나 더 사용
((int)((characterStats[(int)Enums.EStat.Cooldown] - 1) * 100 ) == 0 ? "-" : ((int)((characterStats[(int)Enums.EStat.Cooldown] - 1) * 100 )).ToString() + "%") + "\n" +
((int)(characterStats[(int)Enums.EStat.Amount]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Amount])).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Revival]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Revival])).ToString()) + "\n" +
((int)((characterStats[(int)Enums.EStat.Magnet] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Magnet] - 1) * 100 )).ToString() + "%") + "\n\n" +
((int)((characterStats[(int)Enums.EStat.Luck] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Luck] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Growth] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Growth] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Greed] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Greed] - 1) * 100 )).ToString() + "%") + "\n" +
((int)((characterStats[(int)Enums.EStat.Curse] - 1) * 100 ) == 0 ? "-" : "+" + ((int)((characterStats[(int)Enums.EStat.Curse] - 1) * 100 )).ToString() + "%") + "\n\n" +
((int)(characterStats[(int)Enums.EStat.Reroll]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Reroll])).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Skip]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Skip])).ToString()) + "\n" +
((int)(characterStats[(int)Enums.EStat.Banish]) == 0 ? "-" : "+" + ((int)(characterStats[(int)Enums.EStat.Banish])).ToString());
}
public void SetItemUI(List<Weapon> weapons, List<Accessory> accessories)
{
SetWeaponUI(weapons);
SetAccessoryUI(accessories);
}
private void OnBgmVolumeChanged(float value)
{
SoundManager soundManager = SoundManager.instance;
soundManager.BgmVolume = value;
Debug.Log(soundManager.BgmVolume);
}
private void OnSoundEffectVolumeChanged(float value)
{
SoundManager soundManager = SoundManager.instance;
soundManager.SoundEffectVolume = value;
Debug.Log(soundManager.SoundEffectVolume);
}
private void SetWeaponUI(List<Weapon> weapons)
{
for (int i = 0; i < weapons.Count; i++)
{
mOwnWeaponImages[i].sprite = mWeaponImages[weapons[i].WeaponIndex];
mOwnWeaponImages[i].enabled = true;
int j = 0;
for (; j < weapons[i].WeaponLevel; j++)
{
mWeaponLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[1];
mWeaponLevelsUI[i].MiniLevel[j].enabled = true;
}
for (; j < weapons[i].WeaponMaxLevel; j++)
{
mWeaponLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[0];
mWeaponLevelsUI[i].MiniLevel[j].enabled = true;
}
}
}
private void SetAccessoryUI(List<Accessory> accessories)
{
for (int i = 0; i < accessories.Count; i++)
{
mOwnAccessoryImages[i].sprite = mAccessoryImages[accessories[i].AccessoryIndex];
mOwnAccessoryImages[i].enabled = true;
int j = 0;
for (; j < accessories[i].AccessoryLevel; j++)
{
mAccessoryLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[1];
mAccessoryLevelsUI[i].MiniLevel[j].enabled = true;
}
for (; j < accessories[i].AccessoryMaxLevel; j++)
{
mAccessoryLevelsUI[i].MiniLevel[j].sprite = mMiniLevelImages[0];
mAccessoryLevelsUI[i].MiniLevel[j].enabled = true;
}
}
}
}