Мой текущий стек:
- Гарнитура: Oculus Quest
- Unity: v2019.2.19f1
- Интеграция с Oculus: v12
- ОС: MacOs Catilina
Я следовал базовому c руководству по телепортации, и оно работало хорошо: я смог использовать левый большой палец для определения новой цели и ориентации телепортации аватара. Однако после обновления Oculus Integration для Unity до последней версии (v12) он перестал работать.
Это структура моего префаба LocalPlayerController:
, и это была предыдущая (рабочая) конфигурация объекта LocomotionController:
после обновления я заметил, что 2 Сценарии изменены: LocomotionController.cs
и TeleportInputHandlerAvatarTouch.cs
:
LocomotionController.cs
, если мы проанализируем Из этого скрипта подробнее можно заметить, что два поля (CharacterController
и PlayerController
) изменили тип.
/************************************************************************************
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
}
}
Я использовал эти поля, просто перетаскивая префаб LocalPlayerController
в поля редактора единиц, но теперь это невозможно. Не уверен, где я должен выбрать это CapsuleCollider
и SimpleCapsuleWithStickMovement
. Если я коснусь левой ручки, мой игрок перемещается, что не является предполагаемым поведением, и я не знаю, как его изменить.
TeleportInputHandlerAvatarTouch.cs
This Сценарий просто добавить два новых поля были добавлены (я думаю, для новой системы отслеживания рук), но я не думаю, что это создает проблемы с текущей конфигурацией.
Я полностью застрял и не знаю, как поступить Вот. Другие сценарии, по-видимому, не обновлялись с последним обновлением, и все мои исследования не увенчались успехом.