Files
2025TapTapGameJam/Assets/Script/Gameplay/Facility/ButtonInteractController.cs

57 lines
1.8 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Script.Gameplay.Interface;
using Script.Gameplay.Connect;
namespace Script.Gameplay.Facility
{
public class ButtonInteractController : BaseFacilityController
{
[SerializeField] private float signalDuration = 1.0f; // 信号持续时间(秒)
[SerializeField] private GameObject buttonPressPoint;
private bool isPressing = false;
private Vector3 buttonInitialPosition;
[SerializeField] private AudioClip turnSound;
[SerializeField] private AudioClip returnSound;
[SerializeField] private AudioSource buttonSound;
private void Awake()
{
buttonInitialPosition = buttonPressPoint.transform.position;
}
public override string GetInteractPrompt()
{
return "按F按下按钮";
}
public override void Interact(GameObject interactor)
{
if (isPressing) return;
StartCoroutine(SendSignalCoroutine());
//Debug.Log("Button pressed");
}
private IEnumerator SendSignalCoroutine()
{
SendSignal(true, this.gameObject);
isPressing = true;
// 按钮按下的动画或效果可以在这里添加
buttonPressPoint.transform.position = new Vector3(0, 0, 0);
buttonSound.clip = turnSound;
buttonSound.Play();
yield return new WaitForSeconds(signalDuration);
SendSignal(false, this.gameObject);
isPressing = false;
// 按钮弹起的动画或效果可以在这里添加
buttonPressPoint.transform.position = buttonInitialPosition;
buttonSound.clip = returnSound;
buttonSound.Play();
}
}
}