Пример #1
0
        void OnPlayerControllerGotGrounded()
        {
            if (_currentState == SpawnRoutineState.Idle)
            {
                _currentState = SpawnRoutineState.PlayerLanded;

                _fallStartTime = Time.time + _stableDuration;
            }
        }
Пример #2
0
        public bool StartedFalling()
        {
            if (_currentState == SpawnRoutineState.PlayerLanded &&
                Time.time >= _fallStartTime)
            {
                _currentState = SpawnRoutineState.Falling;

                return(true);
            }

            return(false);
        }
Пример #3
0
        public SpawnRoutine(ObjectPoolingManager objectPoolingManager, GameObject platformPrefab, Vector3 spawnLocation, float stableDuration, float fallGravity)
        {
            _fallGravity = fallGravity;

            _stableDuration = stableDuration;

            _currentState = SpawnRoutineState.Idle;

            _objectPoolingManager = objectPoolingManager;

            _velocity = Vector2.zero;

            GameObject = _objectPoolingManager.GetObject(platformPrefab.name);

            GameObject.transform.position = spawnLocation;

            var attachPlayerControllerToObject = GameObject.GetComponentOrThrow <AttachPlayerControllerToObject>();

            attachPlayerControllerToObject.PlayerControllerGotGrounded += OnPlayerControllerGotGrounded;
        }