Заменить ScriptableObject на Firebase - PullRequest
0 голосов
/ 11 июля 2020

Я делаю многопользовательскую игру-викторину, и я использовал Scriptableobject для хранения данных своей викторины. Теперь я хотел бы изменить его и использовать Firebase, но я упал с ним.

У меня есть скриптовый объект для хранения моих вопросов: Код (CSharp):

[CreateAssetMenu(fileName = "QuestionsTF", menuName = "QuestionTF")]
public class QuestionTF : ScriptableObject
{
    public List<Question> questionstf;
}

И Gamemanager сценарий для обработки этого:

[SerializeField]
    private List<QuestionTF> quizDB;
 
    void Startgame(int index)
    {
        //int index =0;
        unAnswered = new List<Question>();
 
        for (int i = 0; i < quizDB[index].questionstf.Count; i++)
        {
            unAnswered.Add(quizDB[index].questionstf[i]);
        }
   
        SetCurrentquestion();
 
    }

Я также использую управление категориями: Код (CSharp):

void Awake()
    {
        for (int i = 0; i < categorybtn.Count; i++)
        {
            Button localbtn = categorybtn[i];
            localbtn.onClick.AddListener(() => Click(localbtn));
        }
    }
    private void Click(Button btn)
    {
        switch (btn.name)
        {
            case "Kategoria 1":
                Startgame(0);
                Debug.Log("start");
                categoryPanel.SetActive(false);
                break;
            case "Kategoria 2":
                Startgame(1);
                categoryPanel.SetActive(false);
                break;
            case "Kategoria 3":
                Startgame(2);
                categoryPanel.SetActive(false);
                break;
        }

Я уже установил соединение с БД - я могу добавить новый вопросы, но у меня проблема с их отображением. Есть ли способ напрямую заменить ScriptableObject? Я попытался использовать JsonUtility.From.JsonOverwritte, но я не могу использовать JSON и список ... Я думаю, что это довольно просто, но после столь длительного использования этого я просто не вижу, как это сделать сейчас (кстати, могу Я использую это также для создания новых вопросов в SO? Я нигде не мог найти эту информацию)

Спасибо

1 Ответ

0 голосов
/ 11 июля 2020

В Scriptable Objects вы можете обновлять данные, как и в других экземплярах объектов, но помните, что эти данные будут сохранены, когда объект будет жив. * Сценарий QuestionTF

[CreateAssetMenu(fileName = "QuestionsTF", menuName = "QuestionTF")]
public class QuestionTF : ScriptableObject
{
    public List<Question> questionstf;

    public void AddingNewQuestions(IEnumerable<Question> questions)
    {
       questionstf.AddRange(questions);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...