Вы жестко закодировали wichAvatarIsOn = 1
, поэтому он всегда будет использовать один и тот же аватар.
Вам необходимо сохранить только что купленный аватар.
Вы можете использовать PlayerPrefs для хранения информации между сценами и игровыми нагрузками.
После того, как вы его где-то сохранили, вам нужно выбрать его из вашего Start()
метода, используя уже существующий SwitchAvatar()
метод.
SwitchScript
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SwitchScript : MonoBehaviour
{
public GameObject avatar1, avatar2;
int wichAvatarIsOn;
void Start()
{
if(PlayerPrefs.HasKey("wichAvatarIsOn"))
{
wichAvatarIsOn = PlayerPrefs.GetInt("wichAvatarIsOn");
}
else
{
wichAvatarIsOn = 1;//Default to an avatarID you want as default
}
SwitchAvatar(wichAvatarIsOn);
}
public void SwitchAvatar(int avatarID)
{
switch (avatarID)
{
case 1:
wichAvatarIsOn = 2;
avatar1.gameObject.SetActive(false);
avatar2.gameObject.SetActive(true);
break;
case 2:
wichAvatarIsOn = 1;
avatar1.gameObject.SetActive(true);
avatar2.gameObject.SetActive(false);
break;
default:
//Set a default avatar incase out of range and add a debug message
Debug.Log("Avatar ID out of range: " + avatarID);
wichAvatarIsOn = 2;
avatar1.gameObject.SetActive(false);
avatar2.gameObject.SetActive(true);
break;
}
}
}
PurchaseScript
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PurchaseScript : MonoBehaviour
{
public void BuyComplete(UnityEngine.Purchasing.Product product)
{
PlayerPrefs.SetInt("wichAvatarIsOn", product.id); //I added it as product.id for this example, you will need to decide how you will do it.
Application.LoadLevel("Scene/Room3");
}
public void BuyFailed(UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason fa)
{
Debug.Log("PURCHASE FAILED");
}
}