using XCEngine; namespace Gameplay { public sealed class AddComponentProbe : MonoBehaviour { public bool InitialHasCamera; public bool InitialHasLight; public bool InitialHasMeshFilter; public bool InitialHasMeshRenderer; public bool AddedTransform; public bool AddedCamera; public bool AddedLight; public bool AddedMeshFilter; public bool AddedMeshRenderer; public bool HasCameraAfterAdd; public bool HasLightAfterAdd; public bool HasMeshFilterAfterAdd; public bool HasMeshRendererAfterAdd; public bool CameraLookupSucceeded; public bool LightLookupSucceeded; public bool MeshFilterLookupSucceeded; public bool MeshRendererLookupSucceeded; public float ObservedCameraFieldOfView; public float ObservedLightIntensity; public string ObservedMeshPath = string.Empty; public int ObservedMaterialCount; public string ObservedMaterial0Path = string.Empty; public int ObservedRenderLayer; public void Start() { InitialHasCamera = HasComponent(); InitialHasLight = HasComponent(); InitialHasMeshFilter = HasComponent(); InitialHasMeshRenderer = HasComponent(); AddedTransform = AddComponent() != null; AddedCamera = AddComponent() != null; AddedLight = gameObject.AddComponent() != null; AddedMeshFilter = AddComponent() != null; AddedMeshRenderer = gameObject.AddComponent() != null; gameObject.AddComponent(); AddComponent(); gameObject.AddComponent(); AddComponent(); HasCameraAfterAdd = HasComponent(); HasLightAfterAdd = HasComponent(); HasMeshFilterAfterAdd = HasComponent(); HasMeshRendererAfterAdd = HasComponent(); CameraLookupSucceeded = TryGetComponent(out Camera camera); LightLookupSucceeded = TryGetComponent(out Light light); MeshFilterLookupSucceeded = TryGetComponent(out MeshFilter meshFilter); MeshRendererLookupSucceeded = TryGetComponent(out MeshRenderer meshRenderer); if (camera != null) { camera.fieldOfView = 82.0f; ObservedCameraFieldOfView = camera.fieldOfView; } if (light != null) { light.intensity = 4.5f; ObservedLightIntensity = light.intensity; } if (meshFilter != null) { meshFilter.meshPath = "Meshes/added.mesh"; ObservedMeshPath = meshFilter.meshPath; } if (meshRenderer != null) { meshRenderer.SetMaterialPath(0, "Materials/added.mat"); meshRenderer.renderLayer = 6; ObservedMaterialCount = meshRenderer.materialCount; ObservedMaterial0Path = meshRenderer.GetMaterialPath(0); ObservedRenderLayer = meshRenderer.renderLayer; } } } }