// ================================== MONOBEHAVIOUR ==================================== private void Awake() { _rigidbody = GetComponent <Rigidbody>(); // Initialize Rigidbody component _animator = GetComponent <Animator>(); // Initialize Animator component _robotUtility = GetComponent <ARobotUtility>(); SetComponentAttachments(); }
// Show HUD for Robot utillities with it's current state private void DisplayUtility() { if (_utilityDisplay == null) { return; // Check if HUD for utilities exists } if (_robotUtility == null) // Check if robot utilites exist { _robotUtility = _robot.GetComponent <ARobotUtility>(); } else { _utilityDisplay.fillAmount = Mathf.Lerp(_utilityDisplay.fillAmount, // Display robot utility _robotUtility.RechargeRatio, Time.deltaTime * _smoothChange); if (_robotUtility.RechargeRatio < _robotUtility.UsabilityRatio) // Change utility color { _utilityDisplay.color = _utilityDisabledColor; } else { _utilityDisplay.color = _utilityEnabledColor; } } }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { _utility = animator.GetComponent <ARobotUtility>(); _utility?.Activate(); }