열심히 구글링했던 기억이 났다.

요약. 파이어베이스에서 사용하는 ContinueWithOnMainThread 는 유니티에서 사용하는

메인스레드와 다른 스레드를 사용하기 때문에 모노비헤이비어에서 제공하는 함수를 못 쓸 때가있다.

아래처럼 사용하는게 제일 안정적이었다.

FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task =>
 {
     FirebaseApp app = FirebaseApp.DefaultInstance;

     // Initialize Database
     reference = FirebaseDatabase.DefaultInstance.RootReference;

     // Call the method to load JSON data
     LoadJsonFromFirebase();
 });

참고링크.

https://forum.unity.com/threads/instantiate-not-working-in-coroutine-firebase.1320300/

 

작성사유.
전에 분명 했던것인데 까먹어서 이번에 30분넘게 또 찾는시간이 걸려서 올린다.
나는 유니티에서 webp를 사용할일이 있어서 깃허브에있는 패키지를 사용해야했다. (압도적 감사!)



준비물.

Git이 설치된 상태.

1.프로젝트 폴더 package / manifest.json 파일을 연다.

그대로 복붙해서 사용한다.

최근 시나리오가 있거나 알파테스트중 앞의 부분을 건너뛰고싶을때 만들었던 스크립트다.
수 많은 if문과 switch문을 보는게 너무 극혐이라 단 4줄이면 되도록 만들었다!

이 코드를 붙인 오브젝트를 프리팹으로 만들어서 키보드 0~9를 눌렀을 때 
원하는 함수를 매핑하거나 다른 함수의 인스턴스로 불러와서 호출하면 정말 편하다.



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

public class SkipHelper : MonoBehaviour
{

//키보드 누르면 등록된 이벤트를 발생시켜 건너 뛰게 하기 위해 만든 스크립트 
    [SerializeField]
    public UnityEvent[] Events;

    void Update()
    {
        if (Input.inputString.Length == 0)
        {
            return;
        }
        else
        {
            Events[Int32.Parse(Input.inputString)].Invoke();
        }
        
    }
}

 

도움이 되었다면 광고나 댓글 한번씩 부탁드립니다~

+ Recent posts