private TutorialPointer ShowPointer(GameObject obj, bool changeParent, Action onHide)
    {
        var    element       = UIManager.Instance.GetElement <TutorialElement>();
        Action restoreParent = null;

        if (changeParent)
        {
            restoreParent = TutorialService.Instance.ChangeParent(obj.transform, element.ObjectParent);
            element.ShowLockLayer();
        }

        element.ShowPointer(obj);

        Action hideAction = () =>
        {
            ActionUtil.ExecuteOnce(ref restoreParent);
            element.HideLockLayer();
            element.HidePointer();
            onHide.Execute();
        };

        var pointer = new TutorialPointer
        {
            Pointer    = element.Pointer,
            HideAction = hideAction
        };

        return(pointer);
    }
Exemple #2
0
    private void Start()
    {
        testObject = GetComponentInChildren <TestObject>();

        tutorialArea = GetComponentInParent <TutorialArea>();
        pointer      = FindObjectOfType <TutorialPointer>();

        InitButtons();
    }