Esempio n. 1
0
        private static void SetupTeleport(ITeleportProvider provider, GameObject[] rootObjs)
        {
            var viveNavMesh = rootObjs.SelectMany(g => g.GetComponentsInChildren <ViveNavMesh>(true)).FirstOrDefault(vnm => vnm != null);

            Assert.IsNotNull(provider);

            var teleportVive     = provider.Teleporter;
            var cameraRig        = provider.CameraRig;
            var parabolicPointer = provider.Pointer;
            var navMesh          = provider.NavMesh;
            var navMeshAnimator  = provider.NavMeshAnimator;

            teleportVive.CancelTeleport();

            cameraRig.position = provider.OriginPosition;
            cameraRig.rotation = provider.OriginRotation;

            if (viveNavMesh != null)
            {
                parabolicPointer.NavMesh = viveNavMesh;
                teleportVive.NavAnimator = viveNavMesh.GetComponent <Animator>();
                navMesh.gameObject.SetActive(false);
            }
            else
            {
                teleportVive.CancelTeleport();
                parabolicPointer.NavMesh = navMesh;
                teleportVive.NavAnimator = navMeshAnimator;
                navMesh.gameObject.SetActive(true);
            }
        }
Esempio n. 2
0
        public static void InterruptTeleport(ITeleportProvider provider)
        {
            var teleportVive     = provider.Teleporter;
            var cameraRig        = provider.CameraRig;
            var parabolicPointer = provider.Pointer;
            var navMesh          = provider.NavMesh;
            var navMeshAnimator  = provider.NavMeshAnimator;

            teleportVive.CancelTeleport();
            navMesh.gameObject.SetActive(true);
            parabolicPointer.NavMesh = navMesh;
            teleportVive.NavAnimator = navMeshAnimator;
            teleportVive.ManualTeleport(provider.OriginPosition);
            cameraRig.rotation = provider.OriginRotation;
        }
Esempio n. 3
0
 public Parameters(Scene scene, ITeleportProvider teleport, Func <AudioMixerGroupBindings, AudioMixerGroup> getAudioGroup)
 {
     Scene            = scene;
     TeleportProvider = teleport;
     GetAudioGroup    = getAudioGroup;
 }