Example #1
0
    IEnumerator MoveSubway()
    {
        SubwayCtrl subwayCtrl = null;

        foreach (var subway in arrSubwayCtrl)
        {
            subway.OnStartMoveToNextStation(timeToMoveStaion);
            if (subway.isHavePlayer)
            {
                subwayCtrl = subway;
            }
        }

        if (subwayCtrl)
        {
            float halfTimeMoveStation = timeToMoveStaion * 0.5f;

            DOTween.To(() => OffsetScrollCtrl.speed, x => OffsetScrollCtrl.speed = x, 4f - (timeToMoveStaion * 0.2f), halfTimeMoveStation);
            yield return(new WaitForSeconds(halfTimeMoveStation));

            DOTween.To(() => OffsetScrollCtrl.speed, x => OffsetScrollCtrl.speed = x, 0f, halfTimeMoveStation);
            yield return(new WaitForSeconds(halfTimeMoveStation));
        }
        else
        {
            yield return(new WaitForSeconds(timeToMoveStaion));
        }

        foreach (var subway in arrSubwayCtrl)
        {
            subway.OnOpenWaitCloseDoor(timeToDoor, timeToWaitInStation, timeToWaitDoor);
        }
        yield return(new WaitForSeconds(timeToDoor + timeToWaitInStation + (timeToWaitDoor * 2)));

        StartCoroutine(MoveSubway());
    }
Example #2
0
    void OnSubwayLeaveStation(SubwayCtrl subwayCtrl)
    {
        StationCtrl station = arrStationCtrl[subwayCtrl.stationID];

        station.SetColliderActive(subwayCtrl.subwaySide, true);
    }
Example #3
0
    void OnSubwayArriveStation(SubwayCtrl subwayCtrl)
    {
        StationCtrl station = arrStationCtrl[subwayCtrl.stationID];

        station.SetColliderActive(subwayCtrl.subwaySide, false);
    }