예제 #1
0
    // Update is called once per frame
    void Update()
    {
        if (cam.pixelRect.Contains(Input.mousePosition))
        {
            if (Input.GetMouseButtonDown(0))
            {
                mouseOld = Input.mousePosition;
            }
            if (Input.GetMouseButton(0))
            {
                Vector3 mouseNew = Input.mousePosition;
                surface.transform.Rotate(Vector3.forward, (mouseNew.x - mouseOld.x) * 2);
                Vector3 xCam = cam.transform.TransformDirection(Vector3.right);
                surface.transform.Rotate(xCam, (mouseNew.y - mouseOld.y) * 2, Space.World);
                mouseOld = mouseNew;
            }
        }


        l.Clear();
        l.currentColor = Color.blue;
        l.AddGrid(surface.position, surface.nbControlU, surface.nbControlV);
        l.currentColor = Color.red;
        l.AddGrid(DrawSurface(50, 50), 50, 50);
    }
예제 #2
0
    // Update is called once per frame
    void Update()
    {
        if (cam.pixelRect.Contains(Input.mousePosition))
        {
            if (Input.GetMouseButtonDown(0))
            {
                mouseOld = Input.mousePosition;
            }
            if (Input.GetMouseButton(0))
            {
                Vector3 mouseNew = Input.mousePosition;
                surface.transform.Rotate(Vector3.forward, (mouseNew.x - mouseOld.x) * 2);
                Vector3 xCam = cam.transform.TransformDirection(Vector3.right);
                surface.transform.Rotate(xCam, (mouseNew.y - mouseOld.y) * 2, Space.World);
                mouseOld = mouseNew;
            }
        }


        l.Clear();
        l.currentColor = Color.blue;
        l.AddGrid(surface.position, surface.nbControlU, surface.nbControlV);
        l.currentColor = Color.red;
        l.AddGrid(DrawSurface(50, 50), 50, 50);

        if (Input.GetMouseButtonDown(1))
        {
            Ray p = mouseLocal();
            selected = Closest(p, 0.1f);
            if (selected != -1)
            {
                distance = Vector3.Distance(p.origin, surface.transform.TransformPoint(surface.position [selected]));
                move     = true;
            }
        }
        if (Input.GetMouseButton(1))
        {
            if (move && selected != -1)
            {
                Ray p = mouseLocal();
                Debug.Log(distance);
                surface.position [selected] = surface.transform.InverseTransformPoint(p.GetPoint(distance));
            }
        }
        if (Input.GetAxis("Mouse ScrollWheel") < 0)
        {
            Ray p      = mouseLocal();
            int change = Closest(p, 0.1f);
            if (change != -1)
            {
                surface.weight [change] *= 0.9f;
            }
        }
        if (Input.GetAxis("Mouse ScrollWheel") > 0)
        {
            Ray p      = mouseLocal();
            int change = Closest(p, 0.1f);
            if (change != -1)
            {
                surface.weight [change] *= 1.1f;
            }
        }
    }