49 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using UnityEngine.XR.Interaction.Toolkit;
 | 
						|
 | 
						|
namespace UnityEngine.XR.Content.Interaction.Analytics
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// Class that connects the Socket Interactors station scene objects with their respective analytics events.
 | 
						|
    /// </summary>
 | 
						|
    [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<XRSocketInteractor>())
 | 
						|
                XrcAnalyticsUtils.Register(gridSocket, connectPerlerBeadParameter);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |