在编辑器脚本中使用火力地堡功能

问题描述 投票:2回答:1

我已经做了一些研究,我现在有种strugguling。我想用火力地堡数据库函数写DATAS在统一的编辑器脚本。

我设法在运行时读取数据库/写漂亮伊斯利(DOC的在线是伟大的!),但是当我尝试做它在编辑的时候,它不工作。

我有一个非常明确的错误:“请注意,DontDestroyOnLoad只能在播放模式下使用,并且,正因为如此,不能编辑脚本的一部分”

考虑到这个错误,这似乎是不可能在这里使用火力地堡功能。但也有人设法使用它呢?

现在我能想到的唯一的解决办法是写一个python脚本,并从统一编辑器启动它,但是这不是真的conviniant具有以工业项目来处理大量的语言(除非你别无选择)。

感谢您的阅读,并为所有的语法错误对不起!路易

c# firebase unity3d firebase-realtime-database
1个回答
0
投票

首先,你应该初始化与唯一的名称FirebaseApp的新实例火力点。我不喜欢这样写道:

FirebaseApp firebaseApp = FirebaseApp.Create(
    FirebaseApp.DefaultInstance.Options, 
    "FIREBASE_EDITOR");

二是建立引用(DatabaseReference,StorageReference等),与此firebaseApp情况下,只有FirebaseApp.CheckAndFixDependenciesAsync后再使用()

总体代码如下所示:

public static void Initialize(bool isEditor = false)
{
    if (isEditor)
    {
        FirebaseApp firebaseApp = FirebaseApp.Create(
            FirebaseApp.DefaultInstance.Options, 
            "FIREBASE_EDITOR");

        firebaseApp.SetEditorDatabaseUrl("https://project.firebaseio.com/");

        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
        {
            if (task.Result == DependencyStatus.Available)
            {
                database = FirebaseDatabase.GetInstance(firebaseApp).RootReference;
                storage = FirebaseStorage.GetInstance(firebaseApp).RootReference;
                auth = FirebaseAuth.GetAuth(firebaseApp);
            }
            else
            {
                Debug.LogError(
                    "Could not resolve all Firebase dependencies: " + task.Result);
            }
        });
    }
    else
    {
        FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://project.firebaseio.com/");

        database = FirebaseDatabase.DefaultInstance.RootReference;
        storage = FirebaseStorage.DefaultInstance.RootReference;
        auth = FirebaseAuth.DefaultInstance;
    }

    IsInitialized = true;
}

对于之前的get / set数据编辑器初始化SDK:

FirebaseManager.Initialize(true);

然后CheckAndFixDependenciesAsync回调后,您可以在编辑器脚本中使用火力地堡。

© www.soinside.com 2019 - 2024. All rights reserved.