Перенос данных из 1 сцены в 2 сцены - PullRequest
0 голосов
/ 23 февраля 2020

(я хочу сделать 2d игру с единицей)

Я хотел бы передать значения монет из первой сцены во вторую.

Я хотел бы взять монеты из первой сцены и установите их в качестве начальной точки для второй сцены,

Может кто-нибудь объяснить мне, как это работает через сериализацию?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class CoinFinal : MonoBehaviour
{
    // Für die Coinanzeige
    public float coins = 1;
    public Text CoinsAnzeige;
    public GameObject house;




    void Start()
    {
        CoinsAnzeige.text = coins.ToString();
        house.SetActive(false);
    }


    public void OnCollisionEnter2D(Collision2D collision)
    {

        if (collision.gameObject.CompareTag("coinblock"))
            coins++;



    }

    void Update()
    {
        CoinsAnzeige.text = " " + coins.ToString();

        if (coins > 9)
        {
            house.SetActive(true);
        }
    }


}

Нашел путь:

void Start()
{
    CoinTest = PlayerPrefs.GetInt("myScore");
}


void Update()
{
    CoinUebergabe.text = PlayerPrefs.GetInt("myScore").ToString();
}

}

Ответы [ 2 ]

1 голос
/ 23 февраля 2020

Эта концепция может быть легко обработана как «GameManager». Singleton

Вот код, который я обычно использую:

Создайте пустой игровой объект в окне иерархии и прикрепите этот скрипт:

public class GameManager : MonoBehaviour
{
public float coins;

private static GameManager _instance;
public static GameManager Instance
{
    get
    {
        return _instance;
    }
}

private void Awake()
{
    if (_instance != null)
    {
        Destroy(gameObject);
    }
    else
    {
        _instance = this;
        DontDestroyOnLoad(gameObject);
    }
}
}

теперь вы можете получить доступ в ваши публичные c свойства в любое время, например:

GameManager.Instance.coins = 3;
0 голосов
/ 24 февраля 2020

Как уже упоминалось, вы можете использовать переменные c. Другой способ - сохранить информацию в PlayerPrefs и загрузить ее снова. Возможно, менее грязный путь будет DontDestroyOnLoad. хотя я упомянул это двумя способами, я думаю, что класс с атрибутами stati c будет лучшим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...