public void Update(Control2DOverrideZone _2DZone, GameObject _Player)
    {
        if (Grounded && !_Player.GetComponent <PlayerControler>()._Grounded)
        {
            return;
        }

        float _LowerXBounds = _X - (_Width / 2);
        float _LowerYBounds = _Y - (_Height / 2);
        float _UpperXBounds = _X + (_Width / 2);
        float _UpperYBounds = _Y + (_Height / 2);

        Vector3 RelativePlayerPoint = _2DZone.transform.InverseTransformPoint(_Player.transform.position) - _2DZone.transform.InverseTransformPoint(_2DZone.transform.position);

        if ((RelativePlayerPoint.x > _LowerXBounds) && (RelativePlayerPoint.x < _UpperXBounds) && (RelativePlayerPoint.y > _LowerYBounds) && (RelativePlayerPoint.y < _UpperYBounds))
        {
            if (Horizontal)
            {
                if (RelativePlayerPoint.x < _X)
                {
                    _2DZone.ChangeLayer(LeftLayer);
                }
                else
                {
                    _2DZone.ChangeLayer(RightLayer);
                }
            }
            else
            {
                if (RelativePlayerPoint.y > _Y)
                {
                    _2DZone.ChangeLayer(LeftLayer);
                }
                else
                {
                    _2DZone.ChangeLayer(RightLayer);
                }
            }
        }
    }
    //Control2DOverrideZone _2DZone;

    public void OnSceneGUI()
    {
        //Transform _Transform = Selection.gameObjects.Select(go => go.transform).ToArray()[0];

        //base.OnInspectorGUI();
        Handles.SphereHandleCap(0, Vector3.zero, Quaternion.identity, 10, EventType.Ignore);
        Control2DOverrideZone _2DZone = (Control2DOverrideZone)target; //_Transform.gameObject.GetComponent<Control2DOverrideZone>()

        //Debug.Log("Number of Layer Changers: " + _LayerChangers.Count());
        if (_2DZone == null)
        {
            return;
        }

        foreach (LayerChanger _LC in _2DZone._LayerChangers)
        {
            Vector3 WorldRightUpper = _2DZone.transform.TransformPoint(new Vector3(_LC._X + (_LC._Width / 2), _LC._Y + (_LC._Height / 2), 0));
            Vector3 WorldRightLower = _2DZone.transform.TransformPoint(new Vector3(_LC._X + (_LC._Width / 2), _LC._Y - (_LC._Height / 2), 0));
            Vector3 WorldLeftLower  = _2DZone.transform.TransformPoint(new Vector3(_LC._X - (_LC._Width / 2), _LC._Y - (_LC._Height / 2), 0));
            Vector3 WorldLeftUpper  = _2DZone.transform.TransformPoint(new Vector3(_LC._X - (_LC._Width / 2), _LC._Y + (_LC._Height / 2), 0));// + _2DZone.transform.position;
            Vector3 WorldMidUpper   = _2DZone.transform.TransformPoint(new Vector3(_LC._X, _LC._Y + (_LC._Height / 2), 0));
            Vector3 WorldMidLower   = _2DZone.transform.TransformPoint(new Vector3(_LC._X, _LC._Y - (_LC._Height / 2), 0));
            Vector3 WorldRightMid   = _2DZone.transform.TransformPoint(new Vector3(_LC._X + (_LC._Width / 2), _LC._Y, 0));
            Vector3 WorldLeftMid    = _2DZone.transform.TransformPoint(new Vector3(_LC._X - (_LC._Width / 2), _LC._Y, 0));
            Handles.color = Color.blue;

            if (_LC.Horizontal)
            {
                SetColor(_LC.RightLayer);
                Handles.DrawLine(WorldRightUpper, WorldRightLower);
                Handles.DrawLine(WorldMidLower, WorldMidUpper);
                Handles.DrawLine(WorldRightUpper, WorldMidUpper);
                Handles.DrawLine(WorldRightLower, WorldMidLower);
                SetColor(_LC.LeftLayer);
                Handles.DrawLine(WorldLeftUpper, WorldLeftLower);
                Handles.DrawLine(WorldMidLower, WorldMidUpper);
                Handles.DrawLine(WorldLeftUpper, WorldMidUpper);
                Handles.DrawLine(WorldLeftLower, WorldMidLower);
            }
            else
            {
                SetColor(_LC.RightLayer); //Now top
                Handles.DrawLine(WorldRightLower, WorldLeftLower);
                Handles.DrawLine(WorldRightLower, WorldRightMid);
                Handles.DrawLine(WorldLeftLower, WorldLeftMid);
                Handles.DrawLine(WorldRightMid, WorldLeftMid);
                SetColor(_LC.LeftLayer); //now bottom
                Handles.DrawLine(WorldRightUpper, WorldLeftUpper);
                Handles.DrawLine(WorldRightUpper, WorldRightMid);
                Handles.DrawLine(WorldLeftUpper, WorldLeftMid);
                Handles.DrawLine(WorldRightMid, WorldLeftMid);
            }
        }


        void SetColor(int Layer)
        {
            if (Layer == 0)
            {
                Handles.color = Color.blue;
            }
            else if (Layer == 1)
            {
                Handles.color = Color.green;
            }
            else if (Layer == 2)
            {
                Handles.color = Color.red;
            }
        }
    }