shop kodu:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Shop : MonoBehaviour
{
[System.Serializable] class ShopItem
{
public Sprite Image;
public int Price;
public bool IsPurchased = false;
}
[SerializeField] List<ShopItem> ShopItemsList;
[SerializeField] Animator No_CoinsAnim;
[SerializeField] Text CoinsText;
GameObject ItemTemplate;
GameObject g;
[SerializeField] Transform ShopScrollView;
Button buyBtn;
void Start()
{
ItemTemplate = ShopScrollView.GetChild (0).gameObject;
int len = ShopItemsList.Count;
for (int i = 0; i < len; i++)
{
g = Instantiate (ItemTemplate, ShopScrollView);
g.transform.GetChild (0).GetComponent <Image> ().sprite = ShopItemsList .Image;
g.transform.GetChild (1).GetChild (0).GetComponent <Text> ().text = ShopItemsList .Price.ToString ();
buyBtn = g.transform.GetChild (2).GetComponent <Button> ();
buyBtn.interactable = !ShopItemsList .IsPurchased;
buyBtn.AddEventListener (i, OnShopItemBtnClicked);
}
Destroy (ItemTemplate);
//UI coin textini degistir
SetCoinsUI ();
}
#region Satin Alma
void OnShopItemBtnClicked (int itemIndex)
{
if (Coins_System.Instance.HasEnoughCoins (ShopItemsList[itemIndex].Price)) //Amount/Tutar
{
Coins_System.Instance.UseCoins (ShopItemsList[itemIndex].Price); //Amount/Tutar
//Satin Alindi yazmasi
ShopItemsList [itemIndex].IsPurchased = true;
//Buton renginin satin alindi olmasi
buyBtn = ShopScrollView.GetChild (itemIndex).GetChild (2).GetComponent <Button> ();
buyBtn. interactable = false;
buyBtn.transform.GetChild (0).GetComponent <Text>().text = "Purchased";
//UI coin textini degistir
SetCoinsUI();
}
else
{
No_CoinsAnim.SetTrigger ("No_Coins");
Debug.Log("You don't enough coins!!");
}
}
#endregion
//Coin textini degistirme
void SetCoinsUI()
{
CoinsText.text = Coins_System.Instance.Coins.ToString ();
}
}
[QUOTE="dyternal, post: 17691352, member: 433725"]
Yeni bir script oluştur. Script içine static bir değişken ata hangi kostümün seçildiğine dair. Tavsiyem integer değer atamanızdır. Sonra o değeri farklı sahnede(oyun başladığında mesela) çekip kostümü değiştirebilirsiniz. Daha sade nasıl anlatırım bilmiyorum kod yokken.
[/QUOTE]
Buda satın almak için olan kod
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using System;
public static class Buy_Button
{
public static void AddEventListener<T> (this Button button, T param, Action<T> OnClick)
{
button.onClick.AddListener (delegate()
{
OnClick (param);
});
}
}
Coin sistemi bu kadar
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Coins_System : MonoBehaviour
{
#region SIngleton:Coins_System
public static Coins_System Instance;
void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad (gameObject);
}
else
{
Destroy (gameObject);
}
}
#endregion
public int Coins;
public void UseCoins (int amount)
{
Coins -= amount;
}
public bool HasEnoughCoins (int amount)
{
return (Coins >= amount);
}
}