Example #1
0
    public IEnumerator ShowTargetsCoroutine(TimelineAvatar avatar)
    {
        targetableAvatars = FindObjectsOfType <TimelineAvatar>().ToList();

        TimelineAvatar avatarSelected = null;

        for (int i = 0; i < targetableAvatars.Count; i++)
        {
            var targetAvatar = targetableAvatars[i];
        }
        while (avatarSelected == null)
        {
            if (Input.GetMouseButtonDown(0))
            {
                print("Getting Input");
                Debug.DrawRay(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector3.up, Color.white, 1);
                var point = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                var col   = Physics2D.OverlapPoint(point);
                if (!col)
                {
                    yield return(null);

                    continue;
                }
                var clickedAvatar = col.GetComponent <TimelineAvatar>();
                if (clickedAvatar)
                {
                    selectedTarget = avatarSelected = clickedAvatar;
                    targetableAvatars.Clear();
                }
            }
            yield return(null);
        }
    }
Example #2
0
 public TimelineObject(TimelineAvatar avatar, Action action, TimelineAvatar selectedTarget, float startTime)
 {
     this.action = action;
     this.length = action.length;
     this.start  = startTime;
     this.avatar = avatar;
 }
Example #3
0
    public void ShowSelection(TimelineAvatar avatar)
    {
        RemoveButtons();
        actionSelected = false;

        for (int i = 0; i < avatar.actions.Count; i++)
        {
            var    action = avatar.actions[i];
            Button button = Instantiate(buttonPrefab, transform).GetComponent <Button>();
            var    a      = action;
            button.onClick.AddListener(delegate { SetAction(action); });
            button.transform.GetChild(0).GetComponent <Text>().text = action.name;

            buttons.Add(button.gameObject);
        }
    }
Example #4
0
    IEnumerator SelectAction(TimelineAvatar avatar)
    {
        var actionIsReady  = false;
        var selectionState = SelectState.Action;

        currentAvatar = avatar.transform;
        while (!actionIsReady)
        {
            switch (selectionState)
            {
            case SelectState.Action:
                actionSelector.ShowSelection(avatar);
                while (!actionSelector.actionSelected)
                {
                    yield return(null);
                }
                selectionState = SelectState.Target;
                break;

            case SelectState.Target:
                targetSelector.ShowTargets(avatar);
                while (!targetSelector.selectedTarget)
                {
                    yield return(null);
                }

                selectionState = SelectState.Done;
                break;

            case SelectState.Path:
                //TODO: Make path function, Component and object

                break;

            case SelectState.Done:
                actionIsReady = true;
                break;

            default:
                break;
            }
            yield return(null);
        }
        currentAvatar = null;

        timelineObjects.Add(new TimelineObject(avatar, actionSelector.selectedAction, targetSelector.selectedTarget, currentTime));
    }
Example #5
0
 public void ShowTargets(TimelineAvatar avatar)
 {
     selectedTarget = null;
     StartCoroutine(ShowTargetsCoroutine(avatar));
 }