Inheritance: MonoBehaviour
コード例 #1
0
ファイル: MotionMap.cs プロジェクト: inhart/MotionMap
    public void setSelectedZone(MotionMapZone zone)
    {
        if (zone == selectedZone)
        {
            return;
        }
        if (selectedZone != null)
        {
            if (autoDeselectOnNewSelection)
            {
                selectedZone.setSelected(false);
            }
        }

        selectedZone = zone;

        if (selectedZone != null)
        {
            selectedZone.setSelected(true);
        }


        OSCMessage m = new OSCMessage("/lastSelectedZone");

        m.Append(selectedZone.id);
        OSCMaster.sendMessage(m);
    }
コード例 #2
0
    public void setOver(bool value)
    {
        if (over == value)
        {
            return;
        }

        over = value;
        foreach (MMSelectableObject mmo in mmos)
        {
            if (mmo != null)
            {
                mmo.overChanged(value);
            }
        }
        if (!selected && value)
        {
            overStartTime = Time.time;
        }

        OSCMessage m = new OSCMessage("/zone/" + id + "/over");

        m.Append(value?1:0);
        OSCMaster.sendMessage(m);
    }
コード例 #3
0
    public void setSelectionProgression(float value)
    {
        if (!selected)
        {
            value = Mathf.Clamp01(value);
            if (value == selectionProgression)
            {
                // Debug.Log("Same value !");
                return;
            }

            foreach (MMSelectableObject mmo in mmos)
            {
                if (mmo != null)
                {
                    mmo.selectionProgress(value);
                }
            }

            selectionProgression = value;
            OSCMessage m = new OSCMessage("/zone/" + id + "/selectionProgress");
            m.Append(selectionProgression);
            OSCMaster.sendMessage(m);
        }
    }
コード例 #4
0
    public void sendOSC(string host, int port)
    {
        if (!hasChangedSinceLastUpdate)
        {
            return;
        }

        OSCMessage m = new OSCMessage("/joint/" + jointName);

        m.Append(relPos.x);
        m.Append(relPos.y);
        m.Append(relPos.z);

        float deltaUpdateTime = Time.time - lastSendTime;
        float speed           = Vector3.Distance(relPos, lastSendPos) / deltaUpdateTime;

        m.Append(speed);

        lastSendTime = Time.time;
        lastSendPos  = new Vector3(relPos.x, relPos.y, relPos.z);


        if (includeTimeStamp)
        {
            m.Append(Time.time);
        }

        OSCMaster.sendMessage(m, host, port);

        hasChangedSinceLastUpdate = false;
    }
コード例 #5
0
    void HandleDisconnectV2(OSCMessage message)
    {
        //Answer disconnect
        string disconnectIP   = message.Data[0].ToString();
        int    disconnectPort = (int)message.Data[1];

        if (message.Data.Count > 2)
        {
            string protocolType = message.Data[2].ToString();
            int    version      = (int)message.Data[3];
        }

        string disconnectID = GetIDFromIPAndPort(disconnectIP, disconnectPort);

        if (OSCMaster.Clients.ContainsKey(disconnectID))
        {
            OSCMaster.RemoveClient(disconnectID);

            if (debug)
            {
                Debug.Log("Removed output " + disconnectID);
            }

            _augmentaOutputs.Remove(disconnectID);
        }
    }
コード例 #6
0
    void sendTrackFeedback()
    {
        OSCMessage m = new OSCMessage("/bodyIsTracked");

        m.Append <int>(bodyIsTracked ? 1 : 0);
        m.Append(Time.time);
        OSCMaster.sendMessage(m, remoteHost, remotePort);
    }
コード例 #7
0
    void sendTouchFeedback()
    {
        OSCMessage m = new OSCMessage("/touch");

        m.Append <int>(simulateTouch?1:0);
        m.Append(Time.time);
        OSCMaster.sendMessage(m, remoteHost, remotePort);
    }
コード例 #8
0
 public void InitConnection()
 {
     if (OSCMaster.Clients.ContainsKey("AugmentaSimulatorOutput"))
     {
         OSCMaster.RemoveClient("AugmentaSimulatorOutput");
     }
     OSCMaster.CreateClient("AugmentaSimulatorOutput", IPAddress.Parse(OutputIP), OutputPort);
 }
コード例 #9
0
 // Use this for initialization
 void Start()
 {
     oscMaster = FindObjectOfType <OSCMaster>();
     oscMaster.messageAvailable += message =>
     {
         Debug.Log("Message received : " + message.Address + " " + message.Data);
     };
 }
コード例 #10
0
ファイル: DataFeedback.cs プロジェクト: inhart/AEli-Unity
 public static void sendMessage(OSCMessage m)
 {
     if (!instance.sendFeedback)
     {
         return;
     }
     OSCMaster.sendMessage(m, instance.remoteHost, instance.remotePort);
 }
コード例 #11
0
 /// <summary>
 /// Create client to send Augmenta message
 /// </summary>
 void CreateAugmentaClient()
 {
     //Create output client
     if (OSCMaster.Clients.ContainsKey("AugmentaSimulatorOutput"))
     {
         OSCMaster.RemoveClient("AugmentaSimulatorOutput");
     }
     OSCMaster.CreateClient("AugmentaSimulatorOutput", IPAddress.Parse(outputIP), outputPort);
 }
コード例 #12
0
ファイル: OSCMaster.cs プロジェクト: inhart/AEli-Unity
    // Use this for initialization
    public override void Awake()
    {
        instance = this;

        usePanel = true;
        base.Awake();

        Connect();
        client = new OSCClient(System.Net.IPAddress.Loopback, 0, false);
    }
コード例 #13
0
    public void NextStep()
    {
        OSCMessage msg = new OSCMessage("/person/" + pid + "/meetingPointLeft");

        OSCMaster.sendMessage(msg, PathManager.instance.OutputIP, PathManager.instance.OutputPort);

        IsGoingToMeetingPoint = false;
        IsOnMeetingPoint      = false;

        splineIndex = getAssociatedPathTo(splineIndex);
    }
コード例 #14
0
    public void sendMood(string mood, float value)
    {
        if (!enableSend)
        {
            return;
        }
        OSCMessage m = new OSCMessage("/attraction/" + mood);

        m.Append(value);
        OSCMaster.sendMessage(m, remoteHost, remotePort);
    }
コード例 #15
0
    void OnApplicationQuit()
    {
        foreach (var pair in Clients)
        {
            pair.Value.Close();
        }

        foreach (var pair in Receivers)
        {
            pair.Value.Close();
        }

        _instance = null;
    }
コード例 #16
0
    void SendInfoMessagesV1(string infoIP, int infoPort)
    {
        OSCMessage infoMessage = new OSCMessage("/info");

        infoMessage.Append(NetworkManager.GetIpv4());
        infoMessage.Append("Augmenta Simulator");
        infoMessage.Append(NetworkManager.GetMacAddress());
        infoMessage.Append(Application.version);
        infoMessage.Append(_controllable.currentPreset != "" ? _controllable.currentPreset : "None");
        infoMessage.Append("Simulator");
        infoMessage.Append("Simulated");

        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);
    }
コード例 #17
0
    /// <summary>
    /// Create receiver for yo protocol
    /// </summary>
    void CreateYoServer()
    {
        if (OSCMaster.Receivers.ContainsKey("AugmentaYo"))
        {
            return;
        }

        try {
            OSCMaster.CreateReceiver("AugmentaYo", yoPort);
            OSCMaster.Receivers["AugmentaYo"].messageReceived += OnYoMessageReceived;
            zeroconfManager.Setup(yoPort);
            _yoServerCreated = true;
        } catch {
            Debug.LogError("Failed to create Augmenta Yo server.");
            yoPort++;
        }
    }
コード例 #18
0
    public override void Awake()
    {
        if (oscmaster == null)
        {
            oscmaster = FindObjectOfType <OSCMaster>();
        }

        if (oscmaster == null)
        {
            Debug.LogWarning("Can't find " + this.GetType().Name + " script to control !");
            return;
        }

        TargetScript = oscmaster;
        base.Awake();
        oscmaster.Connect();
    }
コード例 #19
0
    void Update()
    {
        if (sendAccelerometer)
        {
            var message = new OSCMessage(accelerometerOSCAddress);
            message.Append(Input.acceleration.x);
            message.Append(Input.acceleration.y);
            message.Append(Input.acceleration.z);
            OSCMaster.SendMessageUsingClient(OSCClientName, message);

            accelerometerValue = Input.acceleration.ToString();
        }

        if (sendGyroscope)
        {
            Input.gyro.enabled = true;
            var message = new OSCMessage(gyroscopeOSCAddress);
            message.Append(Input.gyro.attitude.x);
            message.Append(Input.gyro.attitude.y);
            message.Append(Input.gyro.attitude.z);
            message.Append(Input.gyro.attitude.w);
            OSCMaster.SendMessageUsingClient(OSCClientName, message);

            gyroscopeValue = Input.gyro.attitude.ToString();
        }

        if (sendTouch)
        {
            if (!touchOSCAddress.EndsWith("/"))
            {
                touchOSCAddress = touchOSCAddress + "/";
            }

            for (var i = 0; i < Input.touchCount; i++)
            {
                var message = new OSCMessage(touchOSCAddress + i.ToString());
                var touch   = Input.GetTouch(i);
                message.Append(touch.position.x);
                message.Append(touch.position.y);
                OSCMaster.SendMessageUsingClient(OSCClientName, message);

                touchCount = Input.touchCount;
            }
        }
    }
コード例 #20
0
    private void Start()
    {
        instance = this;

        var receiver = OSCMaster.CreateReceiver(OSCReceiverName, OSCInputPort);

        if (receiver == null)
        {
            IsConnected = false;
            return;
        }

        IPAddress = GetLocalIPAddress();


        receiver.messageReceived += processMessage;
        IsConnected = true;
    }
コード例 #21
0
    private void Update()
    {
        if (LinkedAugmentaPoint == null || !Started)
        {
            return;
        }

        AugmentaPersonBehaviour apb = LinkedAugmentaPoint.GetComponent <AugmentaPersonBehaviour>();

        if (apb != null)
        {
            OSCMessage msg = new OSCMessage("/splineViewer/" + apb.pid, progress);
            OSCMaster.sendMessage(msg, TargetIP, TargetPort);
        }
        else
        {
            Debug.LogWarning("AugmentaPersonBehaviour should not be null");
        }

        if ((LinkedAugmentaPoint.position - transform.position).magnitude < DistanceToAugmentaPoint)
        {
            progress += DistanceToAugmentaPoint - (LinkedAugmentaPoint.position - transform.position).magnitude;
        }

        progress = Mathf.Clamp(progress, 0.0f, 1.0f);

        Vector3 position = spline.GetPoint(progress);

        transform.position = position;
        if (lookForward)
        {
            transform.LookAt(position + spline.GetDirection(progress));
        }

        if (progress >= 1f)
        {
            if (meetingPointReached != null)
            {
                meetingPointReached(this.gameObject, transform.position);
            }

            Init();
        }
    }
コード例 #22
0
ファイル: MotorMaster.cs プロジェクト: benkuper/Feufollet
    void sendPositions()
    {
        if (sendTargetPosition)
        {
            OSCMessage m = new OSCMessage("/motor/targetPosition");
            m.Append(target.transform.localPosition.x);
            m.Append(target.transform.localPosition.y);
            OSCMaster.SendMessage(m, "127.0.0.1", 14000);
        }

        if (sendMotorDistances)
        {
            for (int i = 0; i < motors.Length; i++)
            {
                OSCMessage m = new OSCMessage("/motor/" + (i + 1) + "/distance");
                m.Append(motors[i].position);
                OSCMaster.SendMessage(m, "127.0.0.1", 14000);
            }
        }
    }
コード例 #23
0
    void HandleDisconnectV1(OSCMessage message)
    {
        //Answer disconnect
        string disconnectIP   = message.Data[0].ToString();
        int    disconnectPort = (int)message.Data[1];

        string disconnectID = GetIDFromIPAndPort(disconnectIP, disconnectPort);

        if (OSCMaster.Clients.ContainsKey(disconnectID))
        {
            OSCMaster.RemoveClient(disconnectID);

            if (debug)
            {
                Debug.Log("Removed output " + disconnectID);
            }

            _augmentaOutputs.Remove(disconnectID);
        }
    }
コード例 #24
0
    private void Connect()
    {
        IsConnected = false;

        if (OSCMaster.Receivers.ContainsKey(OSCReceiverName))
        {
            OSCMaster.Receivers[OSCReceiverName].messageReceived -= processMessage;
            OSCMaster.RemoveReceiver(OSCReceiverName);
        }

        var receiver = OSCMaster.CreateReceiver(OSCReceiverName, OSCInputPort);

        if (receiver == null)
        {
            return;
        }

        receiver.messageReceived += processMessage;

        IsConnected = true;
    }
コード例 #25
0
ファイル: ControllableMaster.cs プロジェクト: Theoriz/OCF
    private void Connect()
    {
        IsConnected = false;

        if (OSCMaster.HasReceiver(OSCReceiverName))
        {
            OSCMaster.Receivers[OSCReceiverName].messageReceived -= processMessage;
            OSCMaster.RemoveReceiver(OSCReceiverName);
        }

        OSCMaster.CreateReceiver(OSCReceiverName, OSCInputPort).messageReceived += processMessage;

        IsConnected = true;

        if (zeroconfServiceCreated)
        {
            CloseZeroconfService();
        }

        CreateZeroconfService();
    }
コード例 #26
0
    /// <summary>
    /// Increase output timers and delete timed out outputs
    /// </summary>
    void UpdateOutputsTimers()
    {
        _outputsToDelete.Clear();

        for (int i = 0; i < _augmentaOutputs.Count; i++)
        {
            _tmpOutput = _augmentaOutputs.ElementAt(i);

            //Increase output timers
            _augmentaOutputs[_tmpOutput.Key] = _tmpOutput.Value + Time.deltaTime;

            //Check for deletion only if connection timeout is strictly positive
            if (connectionTimeout <= 0)
            {
                continue;
            }

            //Mark for deletion
            if (_augmentaOutputs[_tmpOutput.Key] > connectionTimeout)
            {
                _outputsToDelete.Add(_tmpOutput.Key);
            }
        }

        //Delete timed out outputs
        foreach (var output in _outputsToDelete)
        {
            if (OSCMaster.Clients.ContainsKey(output))
            {
                OSCMaster.RemoveClient(output);
            }

            _augmentaOutputs.Remove(output);

            if (debug)
            {
                Debug.Log("Output " + output + " timed out.");
            }
        }
    }
コード例 #27
0
    public void setSelected(bool value)
    {
        if (selected == value)
        {
            return;
        }

        selected = value;
        foreach (MMSelectableObject mmo in mmos)
        {
            if (mmo != null)
            {
                mmo.selectionChanged(value);
            }
        }

        OSCMessage m = new OSCMessage(value?"/zone/" + id + "/selected":"/zone/" + id + "/deselected");

        OSCMaster.sendMessage(m);

        Invoke("deselect", Mathf.Max(autoDeselectOnTime, 1));
    }
コード例 #28
0
    // Update is called once per frame
    void Update()
    {
        currentProgress = getProgressForPosition();

        for (int i = 0; i < numPoints; i++)
        {
            points[i].delay  = ((numPoints - 1 - i) * 1f / numPoints) * cycleTime;
            points[i].cycle  = cycleTime;
            points[i].onTime = onTime;
            setTransformToPathRelative(points[i].transform, (i * 1f / numPoints) * flecheDist);
        }

        fleche.delay  = 1;
        fleche.cycle  = cycleTime;
        fleche.onTime = onTime;
        setTransformToPathRelative(fleche.transform, flecheDist);
        if (!CameFromLeft)
        {
            fleche.transform.Rotate(new Vector3(0.0f, 180.0f, 0.0f));
        }

        progressSpeed    = progressSpeed - previousProgress; //*Time.deltaTime;
        previousProgress = currentProgress;

        OSCMessage msg = new OSCMessage("/person/" + pid, currentProgress);

        OSCMaster.sendMessage(msg, PathManager.instance.OutputIP, PathManager.instance.OutputPort);

        if (currentProgress >= 1.0f && !IsOnMeetingPoint) //Point on meeting point
        {
            OSCMessage msg2 = new OSCMessage("/person/" + pid + "/onMeetingPoint");
            OSCMaster.sendMessage(msg2, PathManager.instance.OutputIP, PathManager.instance.OutputPort);

            IsOnMeetingPoint = true;


            StartCoroutine(CallMethodAfterXSeconds(MeetingDuration, NextStep));
        }
    }
コード例 #29
0
    void HandleConnectV2(OSCMessage message)
    {
        //Answer connect
        string outputIP     = message.Data[0].ToString();
        int    outputPort   = (int)message.Data[1];
        string protocolType = message.Data[2].ToString();
        int    version      = (int)message.Data[3];

        if (protocolType != "osc" && protocolType != "OSC")
        {
            if (debug)
            {
                Debug.Log("Can only create osc protocol type.");
            }

            return;
        }

        string outputID = GetIDFromIPAndPort(outputIP, outputPort);

        //Create output client
        if (!OSCMaster.Clients.ContainsKey(outputID))
        {
            OSCMaster.CreateClient(outputID, outputIP, outputPort);
        }

        if (!_augmentaOutputs.ContainsKey(outputID))
        {
            _augmentaOutputs.Add(outputID, 0);
        }

        if (debug)
        {
            Debug.Log("Created output " + outputID);
        }
    }
コード例 #30
0
    void HandleConnectV1(OSCMessage message)
    {
        //Answer connect
        string outputIP   = message.Data[1].ToString();
        int    outputPort = (int)message.Data[2];

        string outputID = GetIDFromIPAndPort(outputIP, outputPort);

        //Create output client
        if (!OSCMaster.Clients.ContainsKey(outputID))
        {
            OSCMaster.CreateClient(outputID, outputIP, outputPort);
        }

        if (!_augmentaOutputs.ContainsKey(outputID))
        {
            _augmentaOutputs.Add(outputID, 0);
        }

        if (debug)
        {
            Debug.Log("Created output " + outputID);
        }
    }
コード例 #31
0
ファイル: OSCMaster.cs プロジェクト: benkuper/SoftLove
	// Use this for initialization
	void Awake () {
		init ();
		instance = this;
	}