void OnARStateDataChanged(UIARStateData arStateData) { if (m_CachedAREnabled != arStateData.arEnabled) { if (arStateData.arEnabled) { EnableARMode(); } else { DisableARMode(); } m_CachedAREnabled = arStateData.arEnabled; } if (m_ArMode != arStateData.arMode) { m_ArMode = arStateData.arMode; if (m_ArMode == null) { return; } m_CurrentInstructionUI = null; foreach (var obj in InstructionUIList) { var instructionUI = obj as IInstructionUI; if (instructionUI.arMode == arStateData.arMode) { m_CurrentInstructionUI = instructionUI; break; } } if (m_CurrentInstructionUI == null) { Debug.LogError("AR Instruction UI is null"); return; } m_CurrentInstructionUI.Restart(); } if (m_CachedInstructionUI != arStateData.instructionUIState) { m_CachedInstructionUI = arStateData.instructionUIState; if (m_CachedInstructionUI == InstructionUIState.Init) { StartCoroutine(StartInstrucitonAR()); } } if (m_CachedPlacementGesturesEnabled != arStateData.placementGesturesEnabled) { m_CachedPlacementGesturesEnabled = arStateData.placementGesturesEnabled; } }