예제 #1
0
    private TutorialObject.TutorialSection[] RemoveSection(TutorialObject.TutorialSection section)
    {
        List <TutorialObject.TutorialSection> _sections = _selectedObject.TutorialSections.ToList();

        _sections.Remove(section);
        return(_sections.ToArray());
    }
예제 #2
0
    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;
        }
    }
예제 #3
0
    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());
    }
예제 #4
0
    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();
    }
예제 #5
0
    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();
        }
    }