leancloud / unity-sdk

Unity SDK
MIT License
11 stars 1 forks source link

请问是否有途径在 Editor 内 Initialize AVClient? #11

Open JustinFincher opened 7 years ago

JustinFincher commented 7 years ago

你好, 目前我想在 Editor 打开时读取当前系统环境传回 LeanCloud,但 AVInitializeBehaviour 只能在播放时初始化。
考虑到 Standalone 和 Editor 的运行环境差不多,请问是否有途径在 Scene 未播放的时候初始化?

wujun4code commented 7 years ago

这个我还是没太搞懂,能给个 Unity 文档吗,我学习一下。

JustinFincher commented 7 years ago

比如 Unity 里有两个 Attribute: [InitializeOnLoad][ExecuteInEditMode],通过如此可以在 Editor 内执行代码。如果能在 AVInitializeBehaviour 内提供一个选项,能让初始化代码在 Editor 打开时进行,对于上传 Editor 相关的数据会方便很多。

例如:

using UnityEditor;

#if UNITY_EDITOR
using UnityEngine;

[InitializeOnLoad]
class LeanCloudInitOnEditor
{
    static bool initOnEditor;

    static LeanCloudInitOnEditor ()
    {
        EditorApplication.update += Update;
    }

    static void Update ()
    {
        if (LeanCloudInitOnEditor.initOnEditor)
        {      
            // init leancloud
            // init stuff 

            // init 完毕,不再监听 Update() 回调
            EditorApplication.update -= Update;
        }
    }
}
#endif