cancel
Showing results for 
Search instead for 
Did you mean: 

Teleport not working on Quest after upgrading Oculus Unity Integration to v12

vrz_dev
Protege
My current stack:

- Headset: Oculus Quest
- Unity: v2019.2.19f1
- Oculus Integration: v12
- OS: MacOs Catilina

I have followed a basic tutorial about teleporting and it was working well: I was able to use the left thumbstick to define the new target & orientation of the avatar teleportation. However, after updating the Oculus Integration for Unity to the latest version (v12), it stopped working.

This is the structure of my LocalPlayerController prefab:
advqbytyyfbp.jpeg


and this was the previous (working) configuration of the LocomotionController object:
zdja9dd695nr.jpeg


after the update, I noticed that 2 scripts changed: LocomotionController.cs and TeleportInputHandlerAvatarTouch.cs:
9p5bbpoyw7tw.jpeg




LocomotionController.cs

if we analyse this script more in detail we can notice that two fields (`CharacterController` and `PlayerController`) have changed type.

/************************************************************************************

See SampleFramework license.txt for license terms. Unless required by applicable law

or agreed to in writing, the sample code is provided “AS IS” WITHOUT WARRANTIES OR

CONDITIONS OF ANY KIND, either express or implied. See the license for specific

language governing permissions and limitations under the license.

************************************************************************************/

using System;

using UnityEngine;

using System.Collections;

using JetBrains.Annotations;

using UnityEngine.Assertions;

#if UNITY_EDITOR

using UnityEngine.SceneManagement;

#endif

/// <summary>

/// Simply aggregates accessors.

/// </summary>

public class LocomotionController : MonoBehaviour

{

public OVRCameraRig CameraRig;

//public CharacterController CharacterController;

public CapsuleCollider CharacterController;

//public OVRPlayerController PlayerController;

public SimpleCapsuleWithStickMovement PlayerController;

void Start()

{

/*

if (CharacterController == null)

{

CharacterController = GetComponentInParent<CharacterController>();

}

Assert.IsNotNull(CharacterController);

*/

//if (PlayerController == null)

//{

//PlayerController = GetComponentInParent<OVRPlayerController>();

//}

//Assert.IsNotNull(PlayerController);

if(CameraRig == null)

{

CameraRig = FindObjectOfType<OVRCameraRig>();

}

Assert.IsNotNull(CameraRig);

#if UNITY_EDITOR

OVRPlugin.SendEvent("locomotion_controller", (SceneManager.GetActiveScene().name == "Locomotion").ToString(), "sample_framework");

#endif

}

}

I was used to set those fields simply by dragging the `LocalPlayerController` prefab into the unity editor fields, but now it's not possible. Not sure where should I pick that `CapsuleCollider` and `SimpleCapsuleWithStickMovement`. If I touch the left thumbstick my player moves around, which is not the intended behaviour and I don't know how to change it.


TeleportInputHandlerAvatarTouch.cs
This script just add two new fields were added (I guess for the new hand tracking system) but I don't think it's creating problems with the current configuration.
I'm completely stuck and not sure how to proceed from here. No other scripts seem to have been updated with the last upgrade and all my researches were unsuccessful.


Update

After reading this post I have tried to add the two components (CapsuleCollider and SimpleCapsuleWithStickMovements) to LocalPlayerController, reference them in the LocomotionController script, then disabling them as suggested: the teleport ray now appears but it seems not working. For some reason, the left thumbstick makes me move around while the right thumbstick makes me turn quickly, both behaviours which don't seem specified anywhere in the other script. Clearly there is some collision between the scripts. To be honest I'm surprised by the poor quality of the edits in the upgrade. The source code was just disabled without any comments or indications
0 REPLIES 0