// Use this for initialization
        void Start()
        {
            //TempoInpFld = GetComponent<InputField>();
            midimng   = GameObject.Find("MIDImanager").GetComponent <MIDImanager>();
            scoremove = GameObject.Find("ScoreCanvas/ScoreOrigin").GetComponent <ScoreMove>();
            OscCli    = GameObject.Find("UdpObject").GetComponent <uOSC.uOscClient>();

            Initialize();
        }
        public void ChangeOSCAddress(string address, int port)
        {
            if (uClient == null)
            {
                uClient = GetComponent <uOSC.uOscClient>();
            }
            uClient.enabled = false;
            var type         = typeof(uOSC.uOscClient);
            var addressfield = type.GetField("address", BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Instance);

            addressfield.SetValue(uClient, address);
            var portfield = type.GetField("port", BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Instance);

            portfield.SetValue(uClient, port);
            uClient.enabled = true;
        }
        void Start()
        {
            uClient         = GetComponent <uOSC.uOscClient>();
            window          = GameObject.Find("ControlWPFWindow").GetComponent <ControlWPFWindow>();
            handTrackerRoot = GameObject.Find("HandTrackerRoot");

            VMCEvents.OnModelLoaded += (GameObject CurrentModel) =>
            {
                if (CurrentModel != null)
                {
                    this.CurrentModel = CurrentModel;
                    animator          = CurrentModel.GetComponent <Animator>();
                    vrik            = CurrentModel.GetComponent <VRIK>();
                    blendShapeProxy = CurrentModel.GetComponent <VRMBlendShapeProxy>();
                }
            };

            VMCEvents.OnCameraChanged += (Camera currentCamera) =>
            {
                this.currentCamera = currentCamera;
            };

            window.VRMmetaLodedAction += (VRMData vrmdata) =>
            {
                this.vrmdata    = vrmdata;
                this.remoteName = null;
                this.remoteJson = null;
                SendPerLowRate(); //即時送信
            };
            window.VRMRemoteLoadedAction += (string path) =>
            {
                this.vrmdata = null;
                if (path.StartsWith("dmmvrconnect://"))
                {
                    var parsed = path.Substring("dmmvrconnect://".Length).Split('/');
                    remoteName = "dmmvrconnect";
                    remoteJson = Json.Serializer.Serialize(new DMMVRConnectRemote {
                        user_id = parsed[0], avatar_id = parsed[1]
                    });
                }
                else if (path.StartsWith("vroidhub://"))
                {
                    var characterModelId = path.Substring("vroidhub://".Length);
                    remoteName = "vroidhub";
                    remoteJson = Json.Serializer.Serialize(new VRoidHubRemote {
                        characterModelId = characterModelId
                    });
                }
                SendPerLowRate(); //即時送信
            };

            VMCEvents.OnLightChanged += () =>
            {
                SendPerLowRate(); //即時送信
            };

            VMCEvents.OnLoadedConfigPathChanged += path =>
            {
                SendPerLowRate(); //即時送信
            };

            steamVR2Input.KeyDownEvent += (object sender, OVRKeyEventArgs e) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: ConDown");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Con", 1, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z);
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };

            steamVR2Input.KeyUpEvent += (object sender, OVRKeyEventArgs e) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: ConUp");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Con", 0, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z);
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };

            steamVR2Input.AxisChangedEvent += (object sender, OVRKeyEventArgs e) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: ConAxis");
                    try
                    {
                        if (e.IsAxis)
                        {
                            uClient?.Send("/VMC/Ext/Con", 2, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z);
                        }
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };

            KeyboardAction.KeyDownEvent += (object sender, KeyboardEventArgs e) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: KeyDown");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Key", 1, e.KeyName, e.KeyCode);
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };
            KeyboardAction.KeyUpEvent += (object sender, KeyboardEventArgs e) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: KeyUp");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Key", 0, e.KeyName, e.KeyCode);
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };

            midiCCWrapper.noteOnDelegateProxy += (MidiJack.MidiChannel channel, int note, float velocity) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: KeyDown");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Midi/Note", 1, (int)channel, note, velocity);
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };
            midiCCWrapper.noteOffDelegateProxy += (MidiJack.MidiChannel channel, int note) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: KeyDown");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Midi/Note", 0, (int)channel, note, (float)0f);
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };
            midiCCWrapper.knobUpdateFloatDelegate += (int knobNo, float value) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: KeyDown");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Midi/CC/Val", knobNo, value);
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };
            midiCCWrapper.knobUpdateBoolDelegate += (int knobNo, bool value) =>
            {
                if (this.isActiveAndEnabled)
                {
                    //Debug.Log("Ext: KeyDown");
                    try
                    {
                        uClient?.Send("/VMC/Ext/Midi/CC/Bit", knobNo, (int)(value ? 1 : 0));
                    }
                    catch (Exception ex)
                    {
                        Debug.LogError(ex);
                    }
                }
            };

            this.gameObject.SetActive(false);
            uClient.enabled = true;
        }
Exemple #4
0
 void Start()
 {
     client = GetComponent <uOSC.uOscClient>();
 }