示例#1
0
        public static void Load()
        {
            try {
                Log.Info("LifeCycle.Load() called");
                Log.Info("testing stack trace:\n" + Environment.StackTrace, false);

                NetworkExtensionManager.Instance.OnLoad();
                Log.Info($"Scene={Scene} LoadMode={Mode}");
                if (Scene != "AssetEditor")
                {
                    Log.Info("Applying in game patches");
                    HarmonyUtil.InstallHarmony <InGamePatchAttribute>(HARMONY_ID);
                }
                else
                {
                    Log.Info("Applying all patches");
                    HarmonyUtil.InstallHarmony(HARMONY_ID, forbidden: typeof(PreloadPatchAttribute));
                    HintBox.Create();
                }
                NetInfoExtionsion.Ensure_EditedNetInfos();

                ObserverDisposable = GeometryManager.Instance.Subscribe(new ARTMPEObsever());

                ARTool.Create();

                Log.Info("LifeCycle.Load() successfull!");
                Log.Flush();
            } catch (Exception ex) {
                Log.Exception(ex);
                throw ex;
            }
        }
示例#2
0
 public static void Unload()
 {
     LogCalled();
     ARTool.Release();
     ObserverDisposable?.Dispose();
     HintBox.Release();
     HarmonyUtil.UninstallHarmony(HARMONY_ID);
     NetworkExtensionManager.RawInstance?.OnUnload();
 }
 void Awake()
 {
     FixedRatio = 1;
     foreach (ClickBox cb in HideButtons)
     {
         cb.AddEventListener("onclick", () => {
             Mode = ARTool.Hidden;
             RunEvent("onhide");
         });
     }
     // ARLoader.ToolPanel = this;
 }
示例#4
0
 public static void Unload()
 {
     try {
         LogCalled();
         UI.Debug.PWSelector.Release();
         UI.Debug.PWModifier.Release();
         ARTool.Release();
         ObserverDisposable?.Dispose();
         HintBox.Release();
         HarmonyUtil.UninstallHarmony(HARMONY_ID);
         NetworkExtensionManager.RawInstance?.OnUnload();
     }catch (Exception ex) {
         Log.Exception(ex);
     }
 }
    void LateUpdate()
    {
        if (theta < 0)
        {
            if (lastMode != Mode)
            {
                if (lastMode == ARTool.Hidden)
                {
                    theta = Mathf.PI / 2;
                }
                else
                {
                    theta = 0;
                }
            }
        }
        else
        {
            float a = 1 - Mathf.Sin(theta);
            theta += TransistionSpeed;

            if (theta > Mathf.PI / 2 && lastMode != Mode)
            {
                lastMode = Mode;
                if (lastMode == ARTool.Hidden)
                {
                    theta = -1;
                    a     = 0;
                }
            }

            if (theta > Mathf.PI)
            {
                a     = 1;
                theta = -1;
            }

            Canvas.alpha = a;
        }

        if (AlignBottom)
        {
            if (phi < Mathf.PI)
            {
                phi += AlignSpeed;
                if (phi > Mathf.PI)
                {
                    phi = Mathf.PI;
                }
            }
        }
        else
        {
            if (phi > 0)
            {
                phi -= AlignSpeed;
                if (phi < 0)
                {
                    phi = 0;
                }
            }
        }
        Vector3 pos     = transform.localPosition;
        float   yBottom = (Height / 2) + (PaddingVW.left * Screen.width / 100) - (Screen.height / 2);

        pos.y = yBottom * (1 - Mathf.Cos(phi)) / 2;
        transform.localPosition = pos;

        Opacity = 1;
        GameObject current = null;

        switch (lastMode)
        {
        case ARTool.Loader:
            current = ARLoader.gameObject;
            Opacity = 1 - ((float)ARLoader.Progress) / 100;
            break;

        case ARTool.ProductInfo:
            current = ARProductInfo.gameObject;
            break;

        case ARTool.Help:
            current = ARHelp;
            break;

        case ARTool.ColorPicker:
            current = ARColorPicker.gameObject;
            break;

        case ARTool.Hidden:
            Canvas.alpha = 0;
            break;
        }
        foreach (Transform child in transform)
        {
            child.gameObject.SetActive(child.gameObject == current);
        }
    }