В настоящее время я использую единство с расколом Oculus, работающим под OVRCameraRig, и скриптом, прикрепленным к нему CenterEyeAnchor. Этот скрипт использует следующий код.Oculus Rift raycast
GameObject dot;
void Start() {
dot = GameObject.CreatePrimitive(PrimitiveType.Sphere);
dot.GetComponent<Renderer>().material.color = Color.red;
dot.layer = 2;
dot.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f);
}
void Update() {
RaycastHit hit;
if (Physics.Raycast(transform.position, Vector3.forward, out hit, 80.0f))
{
dot.transform.position = hit.point;
}
else
{
dot.transform.position = transform.forward * 80 + transform.position;
}
}
Когда я запускаю следующий код без рифтовой гарнитуры подключен к сети, RayCast сталкивается со всеми объектами (в то время как перемещение OVRCameraRig в пределах сцены), однако, если я перезапустить программу с моим разлом подключен, raycast идет через все объекты и, следовательно, перемещает мяч на расстоянии 80 единиц от вас. Мне интересно, почему поведение RayCasts изменилось после того, как я включу минигарнитуру, и если будет способ остановить это.
Edit: При отладке следующий код, кажется, что, когда рифтовая подключен raycast всегда удается попасть на все объекты