public override void SetupDataProviders(PlayableDirector director, List <IFunctionalityProvider> providers) { var providerObj = GameObjectUtils.Create(k_ProviderName); var animator = providerObj.AddComponent <Animator>(); director.SetGenericBinding(m_AnimationTrack, animator); providers.Add(providerObj.AddComponent <RecordedCameraPoseProvider>()); }
public override void SetupDataProviders(PlayableDirector director, List <IFunctionalityProvider> providers) { var providerObj = GameObjectUtils.Create(k_ProviderName); var pointCloudProvider = providerObj.AddComponent <RecordedPointCloudProvider>(); providers.Add(pointCloudProvider); director.SetGenericBinding(m_SignalTrack, providerObj); }
public override void SetupDataProviders(PlayableDirector director, List <IFunctionalityProvider> providers) { var providerObj = GameObjectUtils.Create(k_ProviderName); var facialExpressionsProvider = providerObj.AddComponent <RecordedFacialExpressionsProvider>(); facialExpressionsProvider.SetupFromRecording(this); providers.Add(facialExpressionsProvider); director.SetGenericBinding(m_SignalTrack, providerObj); }
void OnEnable() { m_FaceParent = GameObjectUtils.Create("Faces").transform; m_RunInEditModeDirty = true; m_StartPose = m_FacePrefab.transform.GetWorldPose(); m_StartActive = m_FacePrefab.activeInHierarchy; var maxFaces = this.GetCurrentMaximumFaceCount(); while (m_FacePool.Count < maxFaces) { var face = new Face(m_FacePrefab, m_FaceParent, this); face.gameObject.SetActive(false); m_FacePool.Enqueue(face); } this.SubscribeFaceAdded(FaceAdded); this.SubscribeFaceUpdated(FaceUpdated); this.SubscribeFaceRemoved(FaceRemoved); }
public LandmarkSet(float scale, string faceName, Transform parent) { var landmarks = EnumValues <MRFaceLandmark> .Values; var landmarkCount = landmarks.Length; points = new Transform[landmarkCount]; renderers = new MeshRenderer[landmarkCount]; var transform = GameObjectUtils.Create(faceName).transform; transform.parent = parent; for (var i = 0; i < landmarkCount; i++) { var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); sphere.name = landmarks[i].ToString(); var sphereTransform = sphere.transform; sphereTransform.localScale *= scale; sphereTransform.parent = transform; renderers[i] = sphere.GetComponent <MeshRenderer>(); points[i] = sphere.transform; } }
void OnBeforeSetupDefaultProviders(List <IFunctionalityProvider> providers) { var simulationSettings = SimulationSettings.instance; if (DisableRecordingPlayback || !simulationSettings.IsUsingRecording || !MarsEditorUtils.SimulatingDiscovery) { m_CurrentRecordingInfo = null; TimelineSyncState = SimulationTimeSyncState.NoTimeline; return; } var sessionDirectorGO = GameObjectUtils.Create("Session Director"); // Deactivate until we've set up so that the session director does not receive OnEnable immediately sessionDirectorGO.SetActive(false); m_CurrentSessionDirector = sessionDirectorGO.AddComponent <RecordedSessionDirector>(); var recordingInfo = simulationSettings.GetCurrentRecording(); if (recordingInfo != m_CurrentRecordingInfo) { m_CurrentRecordingInfo = recordingInfo; SetStateToSynced(); } k_RecordedDataProviders.Clear(); m_CurrentSessionDirector.SetupFromRecordingInfo(recordingInfo, k_RecordedDataProviders); m_CurrentSessionDirector.TimeUpdated += OnDirectorTimeUpdated; m_CurrentSessionDirector.EndReached += OnDirectorEndReached; var director = m_CurrentSessionDirector.Director; director.played += OnDirectorPlayed; director.paused += OnDirectorPaused; director.stopped += OnDirectorStopped; sessionDirectorGO.SetActive(true); providers.AddRange(k_RecordedDataProviders); m_SteppableDataProviders.Clear(); var hasPlanesProvider = false; var hasPointCloudProvider = false; foreach (var provider in k_RecordedDataProviders) { if (provider is ISteppableRecordedDataProvider steppableDataProvider) { m_SteppableDataProviders.Add(steppableDataProvider); } if (provider is IProvidesPlaneFinding) { hasPlanesProvider = true; } else if (provider is IProvidesPointCloud) { hasPointCloudProvider = true; } } // If there are recorded planes or point cloud providers, we need to set up stub providers to make sure // the simulated discovery provider game object doesn't get created. if (hasPlanesProvider || hasPointCloudProvider) { var stubProvidersObj = GameObjectUtils.Create(k_StubProvidersName); var sessionProvider = stubProvidersObj.AddComponent <StubSessionProvider>(); sessionProvider.SuppressWarnings = true; providers.Add(sessionProvider); if (!hasPlanesProvider) { var planesProvider = stubProvidersObj.AddComponent <StubPlanesProvider>(); planesProvider.SuppressWarnings = true; providers.Add(planesProvider); } else if (!hasPointCloudProvider) { var pointCloudProvider = stubProvidersObj.AddComponent <StubPointCloudProvider>(); pointCloudProvider.SuppressWarnings = true; providers.Add(pointCloudProvider); } } }