Exemple #1
0
    /// <summary>
    /// 마우스가 핸들을 눌렀는지 검사합니다.
    /// </summary>
    void MouseCheck()
    {
        Event currentEvent = Event.current;

        switch (currentEvent.rawType)
        {
        case EventType.MouseDown:
            if (nowFocus != CameraLimit.RectEnum.None && currentEvent.button == 0)
            {
                Undo.RecordObject(target, "Fix Limit Range" + myScript.transform.name);
                editInfo = nowFocus;
                GUIUtility.hotControl = 0;
                currentEvent.Use();
            }
            break;

        case EventType.MouseUp:
            if (editInfo != CameraLimit.RectEnum.None && currentEvent.button == 0)
            {
                editInfo = CameraLimit.RectEnum.None;
                GUIUtility.hotControl = 0;
                currentEvent.Use();
            }
            break;
        }
    }
Exemple #2
0
    /// <summary>
    /// 핸들을 그립니다.
    /// </summary>
    static void DrawHandle()
    {
        float heightMid = myScript.limitRect.height * 0.5f;
        float widthMid  = myScript.limitRect.width * 0.5f;

        // 점들을 찍어줍니다.
        Handles.CubeHandleCap(0, new Vector2(myScript.limitRect.left, heightMid), Quaternion.identity, Camera.current.orthographicSize * 0.02f, EventType.Repaint);
        Handles.CubeHandleCap(0, new Vector2(myScript.limitRect.right, heightMid), Quaternion.identity, Camera.current.orthographicSize * 0.02f, EventType.Repaint);
        Handles.CubeHandleCap(0, new Vector2(widthMid, myScript.limitRect.top), Quaternion.identity, Camera.current.orthographicSize * 0.02f, EventType.Repaint);
        Handles.CubeHandleCap(0, new Vector2(widthMid, myScript.limitRect.bottom), Quaternion.identity, Camera.current.orthographicSize * 0.02f, EventType.Repaint);

        // 마우스와 가까이 있는 점에는 빨간 점을 찍어줍니다.
        Handles.color = Color.red;
        Vector2 minPoint = myScript.FindMinPosition(MouseInfo.Position, out nowFocus);

        if (HandleUtility.DistanceToRectangle(minPoint, Quaternion.identity, Camera.current.orthographicSize * 0.02f * 0.5f)
            < 50)
        {
            Handles.CubeHandleCap(0, minPoint, Quaternion.identity, Camera.current.orthographicSize * 0.02f, EventType.Repaint);
        }
        else
        {
            nowFocus = CameraLimit.RectEnum.None;
        }
        Handles.color = Color.white;

        // 씬을 다시 그려줍니다.
        SceneView.lastActiveSceneView.Repaint();
    }