Пример #1
0
    // Update is called once per frame
    void Update()
    {
        // Trigger Start
        if (triggerDown)
        {
            if (numClicks == 0)
            {
                GameObject go = new GameObject();
                go.AddComponent <MeshFilter>();
                go.AddComponent <MeshRenderer>();
                currLine      = go.AddComponent <MeshLineRenderer>();
                currLine.lmat = new Material(activeMat);
                currLine.SetWidth(.1f);
            }

            currLine.AddPoint(controllerDevice.transform.position);
            numClicks++;

            List <float> data = ControllerVelocityAndAmplitude();
            currLine.lmat.SetFloat("_SynthFrequency", data[0]);
            OSCHandler.Instance.SendMessageToClient("myClient", "/waveData/" + activeWave, data);
        }
        else if (!triggerDown)
        {
            numClicks = 0;
            currLine  = null;
        }
    }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        if (hover_status == 0)
        {
            if (pinchDetector.DidStartPinch)
            {
                GameObject go = new GameObject();
                go.AddComponent <MeshFilter>();
                go.AddComponent <MeshRenderer>();
                currLine = go.AddComponent <MeshLineRenderer>();

                in_game_go_objects.Add(currLine);
                drawing_list.Add(go);

                currLine.lmat = new Material(lMat);
                currLine.SetWidth(lineManager.lineWidth);
            }
            // If it is still pinching
            else if (pinchDetector.IsPinching)
            {
                currLine.AddPoint(index_transform.position);
            }
            else if (pinchDetector.DidEndPinch)
            {
                // We should synchronize the latest created object to the server
                // PhotonNetwork.Instantiate("MeshLineRenderer", currLine.transform.position, currLine.transform.rotation, 0);
                currLine = null;
            }
        }
        else
        {
            currLine = null;
        }
        // If undo is call, destroy the latest drawing
        if (undo > 0)
        {
            if (drawing_list.Count > 0)
            {
                GameObject tempO = drawing_list[drawing_list.Count - 1];
                drawing_list.RemoveAt(drawing_list.Count - 1);
                Destroy(tempO);

                undo--;
            }
            else if (drawing_list.Count == 0)
            {
                undo = 0;
            }
        }

        // If reset is call, destroy all the drawing
        if (reset == 1)
        {
            //foreach (MeshLineRenderer temp in in_game_go_objects)
            //{
            //    temp.ClearMesh();
            //    in_game_go_objects.Remove(temp);
            //}

            int size = drawing_list.Count;
            for (int i = size - 1; i >= 0; i--)
            {
                GameObject tempO = drawing_list[i];
                drawing_list.RemoveAt(i);
                Destroy(tempO);
            }
            reset = 0;
        }
        // Color Manager && Line Manager
        if (currLine != null)
        {
            currLine.lmat.color = ColorManager.Instance.GetCurrentColor();
            currLine.SetWidth(lineManager.lineWidth);
        }
    }