C# 更改级别时,将Fb.init()放在何处?

C# 更改级别时,将Fb.init()放在何处?,c#,unity3d,facebook-unity-sdk,C#,Unity3d,Facebook Unity Sdk,我有两个不同的级别,在我的第二个级别中,我想使用facebook提交高分。因此,我将facebook sdk函数从fb文档添加到了我的2级unity c脚本中。 第一次加载这个级别可以正常工作,但是在我完成并返回到第一个级别并再次加载第二个级别之后,它会抱怨,因为fb.init已经加载了 我的眼睛看起来像这样: if (!FB.IsLoggedIn) { FB.Init(SetInit, OnHideUnity); } 我需要把FB.Init函数放在哪里,这样它就不会被再次调用了?这

我有两个不同的级别,在我的第二个级别中,我想使用facebook提交高分。因此,我将facebook sdk函数从fb文档添加到了我的2级unity c脚本中。 第一次加载这个级别可以正常工作,但是在我完成并返回到第一个级别并再次加载第二个级别之后,它会抱怨,因为fb.init已经加载了

我的眼睛看起来像这样:

if (!FB.IsLoggedIn)   {
   FB.Init(SetInit, OnHideUnity);
}

我需要把FB.Init函数放在哪里,这样它就不会被再次调用了?这两个级别都将再次加载。

如果您指的是Unity3D中的场景级别,则应在Unity中调用FB.Init一次。不要再次尝试它的调用方法

如user3811917所述,FB init应该只调用一次。在Unity development中,有很多次您只希望在应用程序的生命周期中调用一次函数,解决这一问题的最常用方法是创建单独的加载或引导场景


基本上,这个场景所做的是加载,然后在开始时立即转换到游戏的第一个场景。通过向该场景添加在唤醒时运行的脚本,您可以调用在应用程序的整个生命周期中只调用一次的多个函数。这对于设置只需初始化一次的第三方插件非常有用。您还可以在此场景中放置不可销毁的单例对象,以便您可以创建和初始化仅创建一次的场景持久对象。

ah ok!我将在开始场景之前添加一个初始场景!好主意。谢谢