using UnityEngine.XR.Interaction.Toolkit; namespace UnityEngine.XR.Content.Interaction.Analytics { /// /// Class that connects the Socket Interactors station scene objects with their respective analytics events. /// [AddComponentMenu("")] [DisallowMultipleComponent] class XrcSocketInteractorsStationAnalytics : MonoBehaviour { [Header("Socket Simple Object Substation")] [SerializeField] XRSocketInteractor m_SimpleSocket; [Header("Perler Machine")] [SerializeField] XRSocketInteractor m_BatterySlotSocket; [SerializeField] XRSocketInteractor[] m_InfinityPegSockets; [SerializeField] Transform m_GridCenter; void Start() { XrcAnalyticsUtils.Register(m_SimpleSocket, new ConnectSocketSimpleObject(), new DisconnectSocketSimpleObject()); XrcAnalyticsUtils.Register(m_BatterySlotSocket, new ConnectPerlerMachineBattery()); var grabPerlerBeadParameter = new GrabPerlerBead(); foreach (var socket in m_InfinityPegSockets) { foreach (var interactable in socket.interactablesSelected) { XrcAnalyticsUtils.Register(interactable as XRBaseInteractable, grabPerlerBeadParameter); } socket.selectEntered.AddListener(args => XrcAnalyticsUtils.Register(args.interactableObject as XRBaseInteractable, grabPerlerBeadParameter)); } var connectPerlerBeadParameter = new ConnectPerlerBead(); foreach (var gridSocket in m_GridCenter.GetComponentsInChildren()) XrcAnalyticsUtils.Register(gridSocket, connectPerlerBeadParameter); } } }