Esempio n. 1
0
    private void Start()
    {
        _camera = GetComponent <Camera>();
        LevelCameraData data = FindObjectOfType <LevelCameraData>();

        Debug.Log(data.gameObject.name);
        _levelBounds = data.Bounds;
        float maxXHieght = (_levelBounds.width * 0.5f) / Mathf.Tan(_horizontalFOVInRads * 0.5f);
        float maxYHieght = (_levelBounds.height * 0.5f) / Mathf.Tan(_verticalFOVInRads * 0.5f);

        _maxZoomDistance = maxYHieght > maxXHieght ? maxXHieght : maxYHieght;
    }
Esempio n. 2
0
    void OnSceneGUI(SceneView scene)
    {
        if (Selection.gameObjects.Length <= 0)
        {
            return;
        }

        GameObject gameObject = Selection.gameObjects.FirstOrDefault(gObj => gObj.GetComponent <LevelCameraData>());

        if (gameObject == null)
        {
            if (_cameraData != null)
            {
                _cameraData = null;
                OnDeselection();
            }

            return;
        }

        if (_cameraData == null)
        {
            _cameraData = gameObject.GetComponent <LevelCameraData>();
            OnSelection();
        }

//        Debug.Log($"Width: {_cameraData.Bounds.width}" );
        Handles.DrawSolidRectangleWithOutline(
            new Rect(_cameraData.Bounds.position - _cameraData.Bounds.size * 0.5f, _cameraData.Bounds.size), _fillColor,
            _outlineColor);

        foreach (Vector3 pos in positions)
        {
            float scale = HandleUtility.GetHandleSize(pos) * 0.25f;
            Handles.color = _handleColor;
            Handles.CubeHandleCap(0, pos, Quaternion.identity, scale, EventType.Repaint);
            Handles.color = Color.white;
        }


        if (_active)
        {
            Selection.activeGameObject = gameObject;
        }
    }