После того, как я куплю плеер, персонаж не работает - PullRequest
1 голос
/ 10 мая 2019

Я сделал 2d игру, и после того, как я купил игрока, он не позволяет мне оставаться в меню, чтобы выбрать карту для игрока (я сделал 3 карты).Игра начинается, и это только первый игрок, которого я создал.

Вот скрипт:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SwitchScript : MonoBehaviour
{
    public GameObject avatar1, avatar2;
    int wichAvatarIsOn = 1;
    // Start is called before the first frame update
    void Start()
    {
        avatar1.gameObject.SetActive(true);
        avatar2.gameObject.SetActive(false);            
    }

    public void SwitchAvatar()
    {
        switch (wichAvatarIsOn)
        {
            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;
        }
    }
}

А вот скрипт для покупки.Что я должен написать на BuyComplete?Стоит ли искать другой скрипт?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PurchaseScript : MonoBehaviour
{
    public void BuyComplete(UnityEngine.Purchasing.Product product)
    {
        Application.LoadLevel("Scene/Room3");
    }

    public void BuyFailed(UnityEngine.Purchasing.Product product, UnityEngine.Purchasing.PurchaseFailureReason fa)
    {
        Debug.Log("PURCHASE FAILED");
    }
}

1 Ответ

0 голосов
/ 10 мая 2019

Вы жестко закодировали 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");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...