Пример #1
0
    void Awake()
    {
        GlobalizationSetting();

        if (instance != null)
        {
            EB.Debug.LogError("There should be only one GameEngine object");
            return;
        }

        EB.Debug.Log("GameEngine Awake");

#if !DEBUG && USE_BUGLY
        BuglyManager.InitBugly();
#endif

#if USE_AIHELP
        AIHelp.AIHelpManager.Init(gameObject.name);
#endif

#if USE_APPSFLYER
        Appsflyer.AppsflyManager.setIsDebug(ILRDefine.DEBUG);
        Appsflyer.AppsflyManager.initSDK(gameObject);
        Appsflyer.AppsflyManager.startSDK();
#endif

#if USE_AOSHITANGSDK
        ASTIsHaveCommond = PlayerPrefs.GetInt("ASTIsHaveCommond", -1) == 1;
#endif

        instance = this;
        DontDestroyOnLoad(gameObject);

        Screen.sleepTimeout = SleepTimeout.NeverSleep;

        // 30/60 for iOS
        Application.targetFrameRate = TargetFrameRate;
        // Don't Sync
        //QualitySettings.vSyncCount = 0;

#if DEBUG
        UnityEngine.Profiling.Profiler.maxNumberOfSamplesPerFrame = 8 * 1024 * 1024;
#endif

        // initialize all layers
        _defaultLayer         = LayerMask.NameToLayer("Default");
        _transparentFXLayer   = LayerMask.NameToLayer("TransparentFX");
        _transparentUI3DLayer = LayerMask.NameToLayer("TransparentUI3D");
        _uiLayer           = LayerMask.NameToLayer("UI");
        _groundLayer       = LayerMask.NameToLayer("Ground");
        _obstacleLayer     = LayerMask.NameToLayer("Obstacle");
        _playerLayer       = LayerMask.NameToLayer("Player");
        _enemyLayer        = LayerMask.NameToLayer("Enemy");
        _interactableLayer = LayerMask.NameToLayer("Interactable");
        _interactiveLayer  = LayerMask.NameToLayer("Interactive");
        _ui3dLayer         = LayerMask.NameToLayer("UI3D");

        if (!ApiCheckCompleted)
        {
            ApiServerAddress  = UserData.defaultApiServerAddress;
            OtaServerAddress  = UserData.localAssetAddress;
            AuthServerAddress = UserData.defaultAuthServerAddress;
        }
        else
        {
            ApiServerAddress  = string.IsNullOrEmpty(ApiServerAddress) ? UserData.defaultApiServerAddress : ApiServerAddress;
            OtaServerAddress  = string.IsNullOrEmpty(OtaServerAddress) ? UserData.localAssetAddress : OtaServerAddress;
            AuthServerAddress = string.IsNullOrEmpty(AuthServerAddress) ? UserData.defaultAuthServerAddress : AuthServerAddress;
        }

#if DISABLE_LOTTERY
        IsFTE = false;
#endif

        InitializeSubSystems();

        DebugSystem.Log("Device reports DPI of " + Screen.dpi, "GameEngine");
        DebugSystem.Log("Device reports resolution of " + Screen.width + "x" + Screen.height, "GameEngine");
        DebugSystem.Log("Device is using " + (UseHDAssets ? "HD" : "SD") + " assets!", "GameEngine");

        SupportsStencil = CheckSupportsStencil();
        DebugSystem.Log("Device " + (SupportsStencil ? "" : "not") + " support stencil!", "GameEngine");

        EventManager.instance.AddListener <GameStateChangedEvent>(OnGameStateChanged);

        _nextApiUpdate = Time.time + ApiUpdateInterval;

        LoadingSpinner.Init();
    }