You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
//======= Copyright (c) Valve Corporation, All rights reserved. ===============
 | 
						|
//
 | 
						|
// Purpose: Used to render an external camera of vr player (split front/back).
 | 
						|
//
 | 
						|
//=============================================================================
 | 
						|
 | 
						|
using UnityEngine;
 | 
						|
using System.Collections;
 | 
						|
 | 
						|
namespace Valve.VR
 | 
						|
{
 | 
						|
    public class SteamVR_ExternalCamera_LegacyManager
 | 
						|
    {
 | 
						|
        public static bool hasCamera { get { return cameraIndex != -1; } }
 | 
						|
 | 
						|
        public static int cameraIndex = -1;
 | 
						|
 | 
						|
        private static SteamVR_Events.Action newPosesAction = null;
 | 
						|
 | 
						|
        public static void SubscribeToNewPoses()
 | 
						|
        {
 | 
						|
            if (newPosesAction == null)
 | 
						|
                newPosesAction = SteamVR_Events.NewPosesAction(OnNewPoses);
 | 
						|
 | 
						|
            newPosesAction.enabled = true;
 | 
						|
        }
 | 
						|
 | 
						|
        private static void OnNewPoses(TrackedDevicePose_t[] poses)
 | 
						|
        {
 | 
						|
            if (cameraIndex != -1)
 | 
						|
                return;
 | 
						|
 | 
						|
            int controllercount = 0;
 | 
						|
            for (int index = 0; index < poses.Length; index++)
 | 
						|
            {
 | 
						|
                if (poses[index].bDeviceIsConnected)
 | 
						|
                {
 | 
						|
                    ETrackedDeviceClass deviceClass = OpenVR.System.GetTrackedDeviceClass((uint)index);
 | 
						|
                    if (deviceClass == ETrackedDeviceClass.Controller || deviceClass == ETrackedDeviceClass.GenericTracker)
 | 
						|
                    {
 | 
						|
                        controllercount++;
 | 
						|
                        if (controllercount >= 3)
 | 
						|
                        {
 | 
						|
                            cameraIndex = index;
 | 
						|
                            break;
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |