コード例 #1
0
    public void computeMousePos()
    {
        Vector2 mousePos = MouseUtils.CursorWorldPosDepth(0);



        if ((Input.GetMouseButtonDown(0) || Input.GetMouseButtonUp(1)) && dragedPoint == null)
        {
            dragedPoint = GetNearestPoint(mousePos, pointsTr[0].localScale.x); // get nearest point

            for (int i = 0; i < meshes.Count; i++)
            {
                meshes[i].unFocus();                                    // unFocus all meshes
            }
            if (Input.GetMouseButtonUp(1))
            {
                if (dragedPoint == null)
                {
                    addPoint(new Vector2(mousePos.x, mousePos.y));
                }
                else
                {
                    RemovePoint(dragedPoint);
                }
                dragedPoint = null;
                return;
            }
        }

        if (dragedPoint != null)
        {
            dragedPoint.position = new Vector3(mousePos.x, mousePos.y, dragedPoint.position.z);
        }
        else
        {
            for (int i = 0; i < meshes.Count; i++)
            {
                if (meshes[i].triangle.ContainPoint(mousePos) && canFocus)
                {
                    meshes[i].focus();
                }
                else
                {
                    meshes[i].unFocus();
                }
            }
        }

        if (Input.GetMouseButtonUp(0) && dragedPoint != null)
        {
            RecreatePoints();
            dragedPoint = null;
        }
    }