Beispiel #1
0
        /// <summary>
        /// Instantiates a new `SequenceOverlayEntity` prefab and returns its corresponding `InputSequence`
        /// </summary>
        public InputSequence CreateSequence(string text, Transform worldTarget)
        {
            SequenceOverlayEntity entity = Instantiate(_sequenceEntityPrefab, transform);

            _spawnedSequences.Add(entity);

            // Keep name updated.
            entity.Sequence.OnTextUpdated += delegate
            {
                entity.name = $"Sequence: {entity.Sequence.Text}";
            };

            entity.Target = worldTarget;
            entity.MoveToTargetPosition();
            entity.Sequence.Text         = text;
            entity.Sequence.OnCompleted += delegate
            {
                InputSequenceManager.UnregisterSequence(entity.Sequence);
                _spawnedSequences.Remove(entity);
            };
            entity.Sequence.OnRemoval += delegate
            {
                _spawnedSequences.Remove(entity);
                Destroy(entity.gameObject);
            };

            return(entity.Sequence);
        }
Beispiel #2
0
 private void Update()
 {
     InputSequenceManager.ProcessInput();
 }
Beispiel #3
0
 private void OnDestroy()
 {
     InputSequenceManager.UnregisterSequence(this);
 }
Beispiel #4
0
 private void Awake()
 {
     InputSequenceManager.RegisterSequence(this);
 }
Beispiel #5
0
 /// <summary>
 /// Untargets the InputSequence.
 /// </summary>
 public void Untarget()
 {
     InputSequenceManager.UntargetSequence(this);
     IsTargeted = false;
     OnUntargeted(this);
 }
Beispiel #6
0
 /// <summary>
 /// Targets the sequence.
 /// </summary>
 public void Target()
 {
     InputSequenceManager.TargetSequence(this);
     IsTargeted = true;
     OnTargeted(this);
 }