Exemplo n.º 1
0
 public void RotateRight(float degrees)
 {
     CatchUpWithPlayer();
     localPlayerTransform *= ca.Transform.Rotate(ca.Quaternion.RotationY(Mathf.Deg2Rad * degrees));
     globalObjectService.VrPlayer.transform.localPosition = localPlayerTransform.Offset.ToUnity();
     globalObjectService.VrPlayer.transform.localRotation = localPlayerTransform.Rotation.ToUnity();
 }
Exemplo n.º 2
0
 public VrHeadPositionService(IStoryService storyService, IGlobalObjectService globalObjectService, IEventRoutingService eventRoutingService)
 {
     this.storyService        = storyService;
     this.globalObjectService = globalObjectService;
     localPlayerTransform     = ca.Transform.Identity;
     eventRoutingService.Subscribe <INewFrameEvent>(typeof(IVrHeadPositionService), nameof(OnNewFrame), OnNewFrame);
 }
Exemplo n.º 3
0
        public void ResetHeadPosition()
        {
            CatchUpWithPlayer();

            var cameraGlobalTransform = globalObjectService.MainCamera.transform.ToClarity();
            var playerGlobalTransform = globalObjectService.VrPlayer.transform.ToClarity();
            var cameraLocalTransform  = cameraGlobalTransform * playerGlobalTransform.Invert();
            var cameraLocalRotationY  = cameraLocalTransform.Rotation.ToUnity().eulerAngles.y;

            cameraLocalTransform.Rotation = Quaternion.Euler(0, cameraLocalRotationY, 0).ToClarity();
            cameraLocalTransform.Offset.Y = 0;
            localPlayerTransform          = cameraLocalTransform.Invert();

            globalObjectService.VrPlayer.transform.localRotation = localPlayerTransform.Rotation.ToUnity();
            globalObjectService.VrPlayer.transform.localPosition = localPlayerTransform.Offset.ToUnity();
        }