using System; using XCEngine; namespace Gameplay { public sealed class GetComponentsProbe : MonoBehaviour { public int ObservedTransformCount; public int ObservedCameraCount; public int ObservedCameraCountViaGameObject; public int ObservedMarkerCount; public int ObservedMeshRendererCount; public bool ObservedAllMarkersNonNull; public bool ObservedFirstMarkerMatchesGetComponent; public bool ObservedMarkerInstancesAreDistinct; public bool ObservedTransformBoundToHost; public string ObservedFirstMarkerHostName = string.Empty; public void Start() { Transform[] transforms = GetComponents(); Camera[] cameras = GetComponents(); Camera[] camerasViaGameObject = gameObject.GetComponents(); ObjectApiMarkerProbe[] markers = GetComponents(); MeshRenderer[] meshRenderers = GetComponents(); ObjectApiMarkerProbe firstMarker = GetComponent(); ObservedTransformCount = transforms.Length; ObservedCameraCount = cameras.Length; ObservedCameraCountViaGameObject = camerasViaGameObject.Length; ObservedMarkerCount = markers.Length; ObservedMeshRendererCount = meshRenderers.Length; ObservedAllMarkersNonNull = Array.TrueForAll(markers, marker => marker != null); ObservedFirstMarkerMatchesGetComponent = firstMarker != null && markers.Length > 0 && ReferenceEquals(markers[0], firstMarker); ObservedMarkerInstancesAreDistinct = markers.Length >= 2 && !ReferenceEquals(markers[0], markers[1]); ObservedTransformBoundToHost = transforms.Length == 1 && transforms[0] != null && transforms[0].GameObjectUUID == GameObjectUUID; if (markers.Length > 0 && markers[0] != null) { ObservedFirstMarkerHostName = markers[0].gameObject.name; } } } }