using DG.Tweening; using UnityEngine; namespace AibisDream { public class OilGate : MonoBehaviour { private SpriteButton _spriteButton; private EngineSystem _engineSystem; private void Start() { _engineSystem = transform.parent.GetComponent(); } private void OnEnable() { _spriteButton = new SpriteButton(gameObject); _spriteButton.OnButtonDown += ButtonClick; _spriteButton.OnButtonUp += ButtonUp; _spriteButton.OnButtonHold += ButtonHold; } private void OnDisable() { _spriteButton = null; } private void Update() { _spriteButton?.CheckButtonClick(); } private void ButtonClick() { transform.DOPause(); transform.DORotate(new Vector3(0, 0, 45), 5f); // 播引擎 AudioManager.PlayLoopAudio("engine_on"); AudioManager.StopInteraction(); } private void ButtonUp() { AudioManager.PauseLoopAudio(); AudioManager.PlayInteraction("engine_off"); transform.DOPause(); transform.DORotate(new Vector3(0, 0, 0), 0.2f); } private void ButtonHold() { _engineSystem.AddOil(); } } }