void MovementModeChanged(BuddyMovementModes newMode) { switch (newMode) { case BuddyMovementModes.FloatingToHand: _animator.SetTrigger(_floatingParameter); break; case BuddyMovementModes.Falling: _animator.SetTrigger(_floatingParameter); break; case BuddyMovementModes.Idle: _animator.SetTrigger(_wavingParameter); break; case BuddyMovementModes.Walking: _animator.SetTrigger(_walkingParameter); break; case BuddyMovementModes.AttachedToHand: _animator.SetTrigger(_talkingParameter); break; } }
void ChangeMovementMode(BuddyMovementModes newMode) { //End previous state switch (_movementMode) { case BuddyMovementModes.AttachedToHand: break; case BuddyMovementModes.FloatingToHand: break; case BuddyMovementModes.Falling: break; case BuddyMovementModes.Idle: break; case BuddyMovementModes.Walking: break; } //Initiate new state switch (newMode) { case BuddyMovementModes.AttachedToHand: break; case BuddyMovementModes.FloatingToHand: _movementSpeed = 0; break; case BuddyMovementModes.Falling: break; case BuddyMovementModes.Idle: Vector3 lookAtPosition = new Vector3(_playerHeadTransform.position.x, transform.position.y, _playerHeadTransform.position.z); transform.LookAt(lookAtPosition); break; case BuddyMovementModes.Walking: _movementSpeed = _walkingSpeed; _movementDirection = transform.forward; _movementTargetTransform = _idlePositionTransform; break; } _movementMode = newMode; OnMovementModeChanged?.Invoke(newMode); }
void TimerBoundSpeeches() { if (_movementMode != _movement.MovementMode) { StopAllSpeech(); _movementMode = _movement.MovementMode; } if (_cooldownTimer <= 0 && _activeTextRoutine == null) { switch (_movementMode) { default: break; case BuddyMovementModes.Idle: if (!_hasBeenPickedUp) { SaySomething(SpeechDistances.FarAway, _speechData.pickMeUpData); } else { SaySomething(SpeechDistances.FarAway, _speechData.goExploreData); } break; case BuddyMovementModes.AttachedToHand: SaySomething(SpeechDistances.CloseBy, _speechData.niceToMeetYouData); _hasBeenPickedUp = true; break; } } else { _cooldownTimer -= Time.deltaTime; } }
void Start() { _movementMode = _movement.MovementMode; }