private void Start() { if (inst == null) { inst = this; } else if (inst != this) { DestroyImmediate(gameObject); return; } TowerUpgradeData temp = new TowerUpgradeData(); for (int i = 0; i < towers.Length; ++i) { if (towers[i] == null) { continue; } if (!PlayerPrefs.HasKey(towers[i].TowerName)) { string data = JsonUtility.ToJson(temp); Debug.Log("Tower Initialize ::::" + data); PlayerPrefs.SetString(towers[i].TowerName, data); } } DontDestroyOnLoad(gameObject); }
void LevelBarInit() { if (PlayerPrefs.HasKey(TowerDetailManager.Instance.Target)) { data = JsonUtility.FromJson <TowerUpgradeData>(PlayerPrefs.GetString(TowerDetailManager.Instance.Target)); int level = 0; switch (upgradeType) { case UpgradeType.Attack: level = data.AttackLevel; break; case UpgradeType.AttackSpeed: level = data.AttackSpeedLevel; break; case UpgradeType.Buy: level = data.BuyLevel; break; case UpgradeType.Range: level = data.RangeLevel; break; case UpgradeType.Supply: level = data.SupplyLevel; break; case UpgradeType.Upgrade: level = data.UpgradeLevel; break; } for (int i = 0; i < levelBar.childCount; ++i) { Destroy(levelBar.GetChild(i).gameObject); } for (int i = 0; i < level; ++i) { AddLevelStick(); } } else { Debug.Log(TowerDetailManager.Instance.Target + "에 대한 키를 가지고 있지 않습니다..."); } }
public void TargetChanged() { if (PlayerPrefs.HasKey(TowerDetailManager.Instance.Target)) { data = JsonUtility.FromJson <TowerUpgradeData>(PlayerPrefs.GetString(TowerDetailManager.Instance.Target)); } LevelBarInit(); if (TowerDetailManager.Instance.TargetType != TowerDetailManager.TowerType.Attack) { if (upgradeType != UpgradeType.Buy && upgradeType != UpgradeType.Upgrade) { GetComponent <Button>().interactable = false; } } else { GetComponent <Button>().interactable = true; } }