public static void SendAudioFrame(AirVRCameraRig cameraRig, float[] data, int sampleCount, int channels, double timestamp) { if (cameraRig.isBoundToClient) { onairvr_EncodeAudioFrame(cameraRig.playerID, data, data.Length / channels, channels, AudioSettings.dspTime); } }
void Start() { List <AirVRServerStreamHandover.Streams> streams = new List <AirVRServerStreamHandover.Streams>(); AirVRServerStreamHandover.TakeAllStreamsHandedOverInPrevScene(streams); foreach (var item in streams) { AirVRCameraRig selected = notifyCameraRigWillBeBound(item.playerID); if (selected != null) { _cameraRigList.RetainCameraRig(selected); selected.BindPlayer(item.playerID, item.mediaStream, item.inputStream); if (selected.isStreaming && Delegate != null) { Delegate.AirVRCameraRigActivated(selected); } } else { onairvr_Disconnect(item.playerID); } } updateApplicationTargetFrameRate(); _eventDispatcher.MessageReceived += onAirVRMessageReceived; }
public void AirVRCameraRigHasBeenUnbound(AirVRCameraRig cameraRig) { if (Event != null) Event.OnUnbound(); Debug.Log("[CircleVRClient] Unbounded"); }
public void AirVRCameraRigHasBeenUnbound(AirVRCameraRig cameraRig) { AirVRSamplePlayer player = cameraRig.GetComponentInParent <AirVRSamplePlayer>(); player.EnableInteraction(false); music.Stop(); }
private void Awake() { _vrCameraRig = FindObjectOfType <AirVRCameraRig>(); _button = transform.Find("Canvas/Panel/Button").GetComponent <Button>(); _indicator = transform.Find("Canvas/Panel/Indicator").GetComponent <Image>(); _indicator.gameObject.SetActive(false); }
public static void EnableTrackedDeviceFeedback(AirVRCameraRig cameraRig, Device device, Texture2D cookieTexture, float depthScaleMultiplier) { if (isTrackedDevice(device) == false) { return; } cameraRig.inputStream.EnableTrackedDeviceFeedback(deviceName(device), cookieTexture, depthScaleMultiplier); }
public void AirVRCameraRigHasBeenUnbound(AirVRCameraRig cameraRig) { // NOTE : This event occurs in OnDestroy() of AirVRCameraRig during unloading scene. // You should be careful because some objects in the scene might be destroyed already on this event. if (music != null) { music.Stop(); } }
public void AirVRCameraRigActivated(AirVRCameraRig cameraRig) { // The sample onairvr client app just sends back what it receives. // (https://github.com/onairvr/onairvr-client-for-oculus-mobile) string pingMessage = "ping from " + System.Environment.MachineName; cameraRig.SendUserData(System.Text.Encoding.UTF8.GetBytes(pingMessage)); }
private void onAirVRPlayerUserDataReceived(int playerID, AirVRServerMessage message) { AirVRCameraRig cameraRig = _cameraRigList.GetBoundCameraRig(playerID); if (cameraRig != null && Delegate != null) { Delegate.AirVRCameraRigUserDataReceived(cameraRig, message.Data_Decoded); } }
private static void GetTransform(AirVRCameraRig cameraRig, string deviceName, byte controlID, ref Vector3 worldPosition, ref Quaternion worldOrientation) { Vector3 position = Vector3.zero; Quaternion orientation = Quaternion.identity; cameraRig.inputStream.GetTransform(deviceName, controlID, ref position, ref orientation); worldPosition = cameraRig.clientSpaceToWorldMatrix.MultiplyPoint(position); worldOrientation = Quaternion.LookRotation(cameraRig.clientSpaceToWorldMatrix.GetColumn(2), cameraRig.clientSpaceToWorldMatrix.GetColumn(1)) * orientation; }
public void ReleaseCameraRig(AirVRCameraRig cameraRig) { if (_cameraRigsAvailable.ContainsKey(cameraRig.type) && _cameraRigsRetained.ContainsKey(cameraRig.type)) { if (_cameraRigsRetained[cameraRig.type].Contains(cameraRig)) { _cameraRigsRetained[cameraRig.type].Remove(cameraRig); _cameraRigsAvailable[cameraRig.type].Add(cameraRig); } } }
private void onAirVRPlayerDeactivated(int playerID, AirVRServerMessage message) { AirVRCameraRig cameraRig = _cameraRigList.GetBoundCameraRig(playerID); if (cameraRig != null && Delegate != null) { Delegate.AirVRCameraRigDeactivated(cameraRig); } updateApplicationTargetFrameRate(); }
public void AirVRCameraRigHasBeenUnbound(AirVRCameraRig cameraRig) { AirVRSamplePlayer player = cameraRig.GetComponentInParent <AirVRSamplePlayer>(); player.EnableInteraction(false); if (getBoundCameraRigCount() == 0) { music.Stop(); } display.RemoveCameraPane(cameraRig as AirVRStereoCameraRig); }
public static void FeedbackTrackedDevice(AirVRCameraRig cameraRig, Device device, Vector3 worldRayOrigin, Vector3 worldHitPosition, Vector3 worldHitNormal) { if (isTrackedDevice(device) == false) { return; } cameraRig.inputStream.FeedbackTrackedDevice(deviceName(device), feedbackRaycastHitResultControlID(device), cameraRig.clientSpaceToWorldMatrix.inverse.MultiplyPoint(worldRayOrigin), cameraRig.clientSpaceToWorldMatrix.inverse.MultiplyPoint(worldHitPosition), cameraRig.clientSpaceToWorldMatrix.inverse.MultiplyVector(worldHitNormal)); }
public void AirVRCameraRigHasBeenUnbound(AirVRCameraRig cameraRig) { // NOTE : This event occurs in OnDestroy() of AirVRCameraRig during unloading scene. // You should be careful because some objects in the scene might be destroyed already on this event. if (_sceneBeingUnloaded == false) { AirVRSamplePlayer player = cameraRig.GetComponentInParent <AirVRSamplePlayer>(); player.EnableInteraction(false); music.Stop(); } }
public void Raycast(AirVRCameraRig cameraRig) { RaycastHit hit = new RaycastHit(); Ray ray = new Ray(cameraRig.rightHandAnchor.position, cameraRig.rightHandAnchor.forward); Debug.DrawLine(ray.origin, ray.direction * 500, Color.red); if (Physics.Raycast(ray, out hit, Mathf.Infinity)) { mouseRayEvents.Invoke(hit.transform.gameObject); } }
public static void SetVibration(AirVRCameraRig cameraRig, Device device, AnimationCurve frequency, AnimationCurve amplitude) { switch (device) { case Device.LeftHandTracker: renderVibration(cameraRig, (byte)AirVRInputDeviceID.LeftHandTracker, (byte)AirVRHandTrackerFeedbackControl.Vibration, frequency, amplitude); break; case Device.RightHandTracker: renderVibration(cameraRig, (byte)AirVRInputDeviceID.RightHandTracker, (byte)AirVRHandTrackerFeedbackControl.Vibration, frequency, amplitude); break; } }
private static void renderVibration(AirVRCameraRig cameraRig, byte device, byte control, AnimationCurve frequency, AnimationCurve amplitude) { var fps = cameraRig.GetConfig().framerate; var duration = Mathf.Max(frequency.keys[frequency.keys.Length - 1].time, amplitude.keys[amplitude.keys.Length - 1].time); for (float t = 0.0f; t < duration; t += 1.0f / fps) { cameraRig.inputStream.PendVibration(device, control, frequency.Evaluate(t), amplitude.Evaluate(t)); } // make sure to end with no vibration cameraRig.inputStream.PendVibration(device, control, 0, 0); }
public static void SetVibration(AirVRCameraRig cameraRig, Device device, float frequency, float amplitude) { switch (device) { case Device.LeftHandTracker: cameraRig.inputStream.PendVibration((byte)AirVRInputDeviceID.LeftHandTracker, (byte)AirVRHandTrackerFeedbackControl.Vibration, frequency, amplitude); break; case Device.RightHandTracker: cameraRig.inputStream.PendVibration((byte)AirVRInputDeviceID.RightHandTracker, (byte)AirVRHandTrackerFeedbackControl.Vibration, frequency, amplitude); break; } }
public AirVRCameraRig RetainCameraRig(AirVRCameraRig cameraRig) { if (_cameraRigsAvailable.ContainsKey(cameraRig.type) && _cameraRigsRetained.ContainsKey(cameraRig.type)) { if (_cameraRigsAvailable[cameraRig.type].Contains(cameraRig)) { _cameraRigsAvailable[cameraRig.type].Remove(cameraRig); _cameraRigsRetained[cameraRig.type].Add(cameraRig); return(cameraRig); } } return(null); }
public static int GetScreenTouchCount(AirVRCameraRig cameraRig) { var count = 0; for (byte control = (byte)AirVRTouchScreenControl.TouchIndexStart; control <= (byte)AirVRTouchScreenControl.TouchIndexEnd; control++) { if (cameraRig.inputStream.IsActive((byte)AirVRInputDeviceID.TouchScreen, control) || cameraRig.inputStream.GetDeactivated((byte)AirVRInputDeviceID.TouchScreen, control)) { count++; } } return(count); }
public static Vector2 Get(AirVRCameraRig cameraRig, Axis2D axis) { switch (axis) { case Axis2D.LThumbstick: return(cameraRig.inputStream.GetAxis2D((byte)AirVRInputDeviceID.Controller, (byte)AirVRControllerControl.Axis2DLThumbstick)); case Axis2D.RThumbstick: return(cameraRig.inputStream.GetAxis2D((byte)AirVRInputDeviceID.Controller, (byte)AirVRControllerControl.Axis2DRThumbstick)); default: return(Vector2.zero); } }
public static bool IsDeviceAvailable(AirVRCameraRig cameraRig, Device device) { switch (device) { case Device.HeadTracker: return(true); case Device.LeftHandTracker: case Device.RightHandTracker: return(cameraRig.inputStream.GetState((byte)device, (byte)AirVRHandTrackerControl.Status) != 0); default: return(false); } }
private void Awake() { player = FindObjectOfType <VideoPlayer>(); pointer = FindObjectOfType <AirXRPointer>(); if (!player) { Debug.LogError("Not Found Video Player"); return; } rig = FindObjectOfType <AirVRCameraRig>(); player.prepareCompleted += OnPrepareCompleted; player.seekCompleted += Player_seekCompleted; }
public void AddUnboundCameraRig(AirVRCameraRig cameraRig) { if (_cameraRigsAvailable.ContainsKey(cameraRig.type) == false) { _cameraRigsAvailable.Add(cameraRig.type, new List <AirVRCameraRig>()); } if (_cameraRigsRetained.ContainsKey(cameraRig.type) == false) { _cameraRigsRetained.Add(cameraRig.type, new List <AirVRCameraRig>()); } if (_cameraRigsAvailable[cameraRig.type].Contains(cameraRig) == false && _cameraRigsRetained[cameraRig.type].Contains(cameraRig) == false) { _cameraRigsAvailable[cameraRig.type].Add(cameraRig); } }
private void onAirVRPlayerCreated(int playerID, AirVRServerMessage message) { AirVRCameraRig selected = notifyCameraRigWillBeBound(playerID); if (selected != null) { _cameraRigList.RetainCameraRig(selected); selected.BindPlayer(playerID); onairvr_AcceptPlayer(playerID); } else { onairvr_Disconnect(playerID); } }
public void RemoveCameraRig(AirVRCameraRig cameraRig) { if (_cameraRigsAvailable.ContainsKey(cameraRig.type) == false || _cameraRigsRetained.ContainsKey(cameraRig.type) == false) { return; } if (_cameraRigsAvailable[cameraRig.type].Contains(cameraRig)) { _cameraRigsAvailable[cameraRig.type].Remove(cameraRig); } else if (_cameraRigsRetained[cameraRig.type].Contains(cameraRig)) { _cameraRigsRetained[cameraRig.type].Remove(cameraRig); } }
public static void GetTrackedDevicePositionAndOrientation(AirVRCameraRig cameraRig, Device device, out Vector3 worldPosition, out Quaternion worldOrientation) { if (isTrackedDevice(device) == false) { worldPosition = cameraRig.headPose.position; worldOrientation = cameraRig.headPose.rotation; return; } Vector3 pos = Vector3.zero; Quaternion rot = Quaternion.identity; GetTransform(cameraRig, deviceName(device), transformControlID(device), ref pos, ref rot); worldPosition = pos; worldOrientation = rot; }
private void Awake() { _cameraRig = GetComponentInChildren <AirVRCameraRig>(); if (_cameraRig == null) { return; } var head = _cameraRig.transform.Find("TrackingSpace/CenterEyeAnchor/Head"); if (head != null) { _head = head.GetComponent <MeshRenderer>(); } _leftController = _cameraRig.transform.Find("TrackingSpace/LeftHandAnchor/Controller").GetComponent <MeshRenderer>(); _rightController = _cameraRig.transform.Find("TrackingSpace/RightHandAnchor/Controller").GetComponent <MeshRenderer>(); _leftControllerColor = _leftController.material.color; _rightControllerColor = _rightController.material.color; }
private void onAirVRPlayerDestroyed(int playerID, AirVRServerMessage message) { AirVRCameraRig unboundCameraRig = _cameraRigList.GetBoundCameraRig(playerID); if (unboundCameraRig != null) { if (unboundCameraRig.isStreaming && Delegate != null) { Delegate.AirVRCameraRigDeactivated(unboundCameraRig); } unboundCameraRig.UnbindPlayer(); _cameraRigList.ReleaseCameraRig(unboundCameraRig); if (Delegate != null) { Delegate.AirVRCameraRigHasBeenUnbound(unboundCameraRig); } } }