public static void HandleDebugObjectsFarFromCamera()
 {
     foreach (GameObject debugObj in debugObjects)
     {
         if (Vector3.Distance(debugObj.transform.position, CameraSwitcher.CurrentCamera.transform.position) > LC_Utils.GetSettings().DebugObjectsDrawDistance)
         {
             debugObj.SetActive(false);
         }
         else
         {
             if (!hidingObjects)
             {
                 debugObj.SetActive(true);
             }
         }
     }
 }
            public static GameObject CreateDebugButton(Transform parent, string btnLabel, Vector3 position, Action onClickFunction, bool rotateToCamera = true)
            {
                GameObject  btnObj            = new GameObject("DebugButton_" + btnLabel);
                DebugButton btnDebugComponent = btnObj.AddComponent <DebugButton>();
                BoxCollider btnCollider       = btnObj.AddComponent <BoxCollider>();

                btnObj.layer = LC_Utils.GetSettings().ButtonsLayerMask;

                if (rotateToCamera)
                {
                    btnObj.AddComponent <LookToCamera>().RotateY = true;
                }
                if (parent != null)
                {
                    btnObj.transform.parent = parent;
                }

                if (onClickFunction != null)
                {
                    btnDebugComponent.OnClickAction = onClickFunction;
                }

                btnCollider.isTrigger = true;
                btnCollider.size      = LC_Utils.GetDefaultButtonSize();

                btnObj.transform.position = position;

                TextMesh buttonLabel =
                    CreateWorldText(
                        text: btnLabel,
                        parent: btnObj.transform,
                        localPosition: Vector3.zero,
                        color: Color.black,
                        textAlignment: TextAlignment.Center,
                        textAnchor: TextAnchor.MiddleCenter,
                        fontSize: LC_Utils.GetDefaultFontSize()
                        );

                GameObject buttonBackground =
                    CreateWorldSprite(
                        parent: btnObj.transform,
                        name: "DebugButton_Background",
                        sprite: LC_Utils.GetDefaultSpriteSquare(),
                        position: Vector3.zero,
                        localScale: LC_Utils.GetDefaultButtonSize(),
                        color: LC_Utils.GetDefaultButtonColor()
                        );

                CreateWorldSprite(
                    parent: btnObj.transform,
                    name: "DebugButton_BackgroundBorder",
                    sprite: LC_Utils.GetDefaultSpriteSquare(),
                    position: Vector3.zero + btnObj.transform.forward * 0.01f,
                    localScale: LC_Utils.GetDefaultButtonSize() + new Vector3(.05f, .05f, .05f),
                    color: Color.gray
                    );

                btnDebugComponent.buttonLabel            = buttonLabel;
                btnDebugComponent.backgroundSprite       = buttonBackground.GetComponent <SpriteRenderer>();
                btnDebugComponent.backgroundColor        = LC_Utils.GetDefaultButtonColor();
                btnDebugComponent.backgroundOnClickColor = LC_Utils.GetDefaultButtonColorOnClick();
                btnDebugComponent.backgroundOnOverColor  = LC_Utils.GetDefaultButtonColorOnOver();

                btnDebugComponent.SetButtonLabelText(btnLabel);

                LC_Debug.RuntimeDebugObjectsManager.debugObjects.Add(btnObj);

                return(btnObj);
            }