Files
XCEngine/managed/GameScripts/GetComponentsProbe.cs

50 lines
2.1 KiB
C#
Raw Normal View History

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<Transform>();
Camera[] cameras = GetComponents<Camera>();
Camera[] camerasViaGameObject = gameObject.GetComponents<Camera>();
ObjectApiMarkerProbe[] markers = GetComponents<ObjectApiMarkerProbe>();
MeshRenderer[] meshRenderers = GetComponents<MeshRenderer>();
ObjectApiMarkerProbe firstMarker = GetComponent<ObjectApiMarkerProbe>();
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;
}
}
}
}