示例#1
0
        IEnumerator Start()
        {
            yield return(null);

            ActiveStation = StartStation;
            ActiveStation.Activate();
        }
示例#2
0
        public void TryActivateStation(BaseStation station)
        {
            if (!Submarine.IsAlive || (ActiveStation == station) || (_activationAnim != null))
            {
                return;
            }
            _activationAnim?.Kill();
            var path          = GetPath(ActiveStation, station);
            var pathRaw       = path.Nodes.Select(x => x.transform.position).ToArray();
            var activeStation = ActiveStation;

            _activationAnim = DOTween.Sequence()
                              .AppendCallback(() => activeStation.Deactivate())
                              .Append(PlayerTransform.DOPath(pathRaw, path.Length / PlayerMovementSpeed).SetEase(Ease.Linear));
            _activationAnim.onComplete += () => {
                station.Activate();
                ActiveStation   = station;
                _activationAnim = null;
            };
        }