private TutorialObject.TutorialSection[] RemoveSection(TutorialObject.TutorialSection section) { List <TutorialObject.TutorialSection> _sections = _selectedObject.TutorialSections.ToList(); _sections.Remove(section); return(_sections.ToArray()); }
private void OnSectionChange(TutorialObject.TutorialSection _section, TutorialObject _object) { _activeSection = _section; if (TutorialSystem.Instance.ActiveTutorial.TutorialID == "basic-ui" && _activeSection.Name == "de-camera") { _mainCameraOriginalPosition = Camera.main.transform.position; } }
private TutorialObject.TutorialSection[] AddSection(string _name) { if (_selectedObject.TutorialSections == null) { _selectedObject.TutorialSections = new TutorialObject.TutorialSection[0]; } List <TutorialObject.TutorialSection> _sections = _selectedObject.TutorialSections.ToList(); TutorialObject.TutorialSection _newSection = new TutorialObject.TutorialSection(); _newSection.Name = _name; _sections.Add(_newSection); return(_sections.ToArray()); }
private void ShowSectionEditor(ref TutorialObject.TutorialSection _section) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(_section.Name); if (GUILayout.Button("Delete")) { _selectedObject.TutorialSections = RemoveSection(_section); } EditorGUILayout.EndHorizontal(); _section.Name = EditorGUILayout.TextField("Section Name", _section.Name); _section.ObjectReferenceID = EditorGUILayout.TextField("Object Reference ID", _section.ObjectReferenceID); _section.HighlightType = (TutorialObject.TutorialSection.HighlightObjectType)EditorGUILayout.EnumPopup("Object Highlight Type", _section.HighlightType); _section.PanelPosition = (Position)EditorGUILayout.EnumPopup("Panel Position", _section.PanelPosition); _section.DoctorOnLeft = EditorGUILayout.Toggle("Doctor on left", _section.DoctorOnLeft); _section.ExternalControls = EditorGUILayout.Toggle("External Controls", _section.ExternalControls); EditorGUILayout.LabelField("Tutorial Body:"); _section.Body = EditorGUILayout.TextArea(_section.Body); GuiLine(); }
private void UpdateSection() { TutorialObject _activeTutorial = TutorialSystem.Instance.ActiveTutorial; if (_activeTutorial.TutorialSections.Length > _activeSection) { TutorialObject.TutorialSection _section = _activeTutorial.TutorialSections[_activeSection]; OnSectionChange?.Invoke(_section, _activeTutorial); // Reposition Tutorial window UpdateWindowPosition(_section.PanelPosition); if (_section.ExternalControls) { _prevButton.SetActive(false); _nextButton.SetActive(false); } else { // Within bounds _prevButton.SetActive(_activeSection != 0); _nextButton.SetActive(_activeSection < _activeTutorial.TutorialSections.Length - 1); } _textObject.text = _section.Body; Vector3 doctorScale = _doctorObject.transform.localScale; if (_section.DoctorOnLeft) { doctorScale.x = -1; _doctorObject.transform.position = _doctorLeftWaypoint.transform.position; } else { _doctorObject.transform.position = _doctorRightWaypoint.transform.position; doctorScale.x = 1; } _doctorObject.transform.localScale = doctorScale; if (_section.ObjectReferenceID != String.Empty) { HighlightObject(_section.ObjectReferenceID, _section.HighlightType); } else { _UIHighlight.gameObject.SetActive(false); if (_objectHighlight != null) { Destroy(_objectHighlight); } } } else if (_activeTutorial.TutorialSections.Length == 0) { Debug.LogError("Tutorial has no sections... Closing"); TutorialSystem.Instance.DeactivateTutorial(); } else { throw new IndexOutOfRangeException(); } }