private void OnEnable() { _enfluxManager = _enfluxManager ?? FindObjectOfType <EnfluxManager>(); if (_enfluxManager == null) { Debug.LogError(name + ": EnfluxManager is not assigned and no instance is in the scene!"); enabled = false; } SubscribeToEvents(); UpdateUi(); }
private void Reset() { _enfluxManager = FindObjectOfType <EnfluxManager>(); _connectHeader = gameObject.FindChildComponent <Text>("Header_Connect"); _connectButtonsContainer = gameObject.FindChildComponent <RectTransform>("Container_ConnectButtons"); _connectShirtButton = gameObject.FindChildComponent <Button>("Button_ConnectShirt"); _connectPantsButton = gameObject.FindChildComponent <Button>("Button_ConnectPants"); _disconnectHeader = gameObject.FindChildComponent <Text>("Header_Disconnect"); _disconnectShirtButton = gameObject.FindChildComponent <Button>("Button_DisconnectShirt"); _disconnectPantsButton = gameObject.FindChildComponent <Button>("Button_DisconnectPants"); _disconnectAllButton = gameObject.FindChildComponent <Button>("Button_DisconnectAll"); _calibrateShirtButton = gameObject.FindChildComponent <Button>("Button_CalibrateShirt"); _calibratePantsButton = gameObject.FindChildComponent <Button>("Button_CalibratePants"); _resetOrientationButton = gameObject.FindChildComponent <Button>("Button_ResetOrientation"); _shirtStateText = gameObject.FindChildComponent <Text>("Text_ShirtState"); _pantsStateText = gameObject.FindChildComponent <Text>("Text_PantsState"); _resetOrientationText = gameObject.FindChildComponent <Text>("Text_ResetOrientation"); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); _manager = (EnfluxManager)target; var isPlaying = Application.isPlaying; GUI.enabled = isPlaying; EditorGUILayout.Space(); EditorGUILayout.LabelField("Connection", EditorStyles.boldLabel); // Connect/disconnect shirt or pants GUILayout.BeginHorizontal(); { if (!_manager.IsShirtActive) { if (GUILayout.Button("Connect Shirt")) { _manager.Connect(DeviceType.Shirt); } } if (!_manager.ArePantsActive) { if (GUILayout.Button("Connect Pants")) { _manager.Connect(DeviceType.Pants); } } if (!_manager.IsShirtActive && !_manager.ArePantsActive) { if (GUILayout.Button("Connect Shirt and Pants")) { _manager.Connect(DeviceType.All); } } GUI.contentColor = Color.yellow; if (_manager.IsShirtActive && !_manager.ArePantsActive) { if (GUILayout.Button("Disconnect Shirt")) { _manager.Disconnect(); } } else if (!_manager.IsShirtActive && _manager.ArePantsActive) { if (GUILayout.Button("Disconnect Pants")) { _manager.Disconnect(); } } else if (_manager.IsShirtActive && _manager.ArePantsActive) { if (GUILayout.Button("Disconnect Shirt and Pants")) { _manager.Disconnect(); } } } GUILayout.EndHorizontal(); EditorGUILayout.Space(); GUI.contentColor = Color.white; EditorGUILayout.LabelField("Calibration", EditorStyles.boldLabel); // Calibrate shirt or pants GUILayout.BeginVertical(); { GUILayout.BeginHorizontal(); { GUI.enabled = isPlaying && !_manager.IsShirtActive; if (GUILayout.Button("Calibrate Shirt")) { _manager.Calibrate(DeviceType.Shirt); } GUI.enabled = isPlaying && !_manager.ArePantsActive; if (GUILayout.Button("Calibrate Pants")) { _manager.Calibrate(DeviceType.Pants); } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); EditorGUILayout.Space(); GUI.contentColor = Color.white; GUI.enabled = isPlaying; EditorGUILayout.LabelField("Alignment", EditorStyles.boldLabel); // Align shirt + pants GUILayout.BeginVertical(); { GUILayout.BeginHorizontal(); { GUI.enabled = isPlaying && _manager.IsAnyDeviceActive; if (GUILayout.Button("Reset Orientation")) { _manager.ResetFullBodyBaseOrientation(); } } GUILayout.EndHorizontal(); } GUILayout.EndVertical(); }