public void setControllerStateChanged(string state) { PLOG.I("PvrLog CVControllerStateChanged" + state); int controller = Convert.ToInt16(state.Substring(0, 1)); if (controller == 0) { controllerlink.controller0Connected = Convert.ToBoolean(Convert.ToInt16(state.Substring(2, 1))); if (!controllerlink.controller0Connected) { controllerlink.Controller0 = new ControllerHand(); controllerlink.Controller0.Position = new Vector3(0, Pvr_UnitySDKSensor.Instance.HeadPose.Position.y, 0) + new Vector3(-0.1f, -0.3f, 0.3f); } } else { controllerlink.controller1Connected = Convert.ToBoolean(Convert.ToInt16(state.Substring(2, 1))); if (!controllerlink.controller1Connected) { controllerlink.Controller1 = new ControllerHand(); controllerlink.Controller1.Position = new Vector3(0, Pvr_UnitySDKSensor.Instance.HeadPose.Position.y, 0) + new Vector3(0.1f, -0.3f, 0.3f); } } if (Convert.ToBoolean(Convert.ToInt16(state.Substring(2, 1)))) { controllerlink.controllerType = controllerlink.GetControllerType(); controllerlink.ResetController(controller); } controllerlink.handness = (Pvr_Controller.UserHandNess)controllerlink.getHandness(); controllerlink.mainHandID = controllerlink.GetMainControllerIndex(); if (SetControllerStateChangedEvent != null) { SetControllerStateChangedEvent(state); } if (PvrControllerStateChangedEvent != null) { PvrControllerStateChangedEvent(state); } }