unity 2d 設置按鈕沒反應
using UnityEngine;
using UnityEngine.UI;
public class WheelController : MonoBehaviour
{
public RectTransform lowerWheel; // 下層輪盤的RectTransform
public Button startStopButton; // 開始/停止按鈕
private bool isSpinning = true; // 控制輪盤是否旋轉的標記
private int clickCount = 0; // 記錄按鈕點擊次數
private float spinSpeed = 100f; // 輪盤旋轉速度
void Start()
{
// 為開始/停止按鈕添加點擊事件監聽器
startStopButton.onClick.AddListener(ToggleSpin);
// 輸出日誌以確認 Start 方法已經調用
Debug.Log("Start method called!");
// 檢查下層輪盤是否已經正確指定
if (lowerWheel == null)
{
Debug.LogError("lowerWheel is not assigned in WheelController!");
return;
}
// 檢查開始/停止按鈕是否已經正確指定
if (startStopButton == null)
{
Debug.LogError("startStopButton is not assigned in WheelController!");
return;
}
}
void Update()
{
// 如果標記為旋轉,則旋轉下層輪盤
if (isSpinning)
{
// 輸出日誌以確認輪盤正在旋轉
Debug.Log("Spinning!");
// 獲取輪盤當前的歐拉角旋轉,並增加在每秒旋轉的速度
Vector3 rotation = lowerWheel.rotation.eulerAngles;
rotation.z += spinSpeed * Time.deltaTime;
// 將計算後的旋轉應用到輪盤的旋轉
lowerWheel.rotation = Quaternion.Euler(rotation);
}
}
// 切換輪盤旋轉狀態的方法
void ToggleSpin()
{
clickCount++; // 點擊計數器加一
// 根據點擊計數器的奇偶性切換旋轉狀態
isSpinning = clickCount % 2 == 1;
if (!isSpinning)
{
// 停止旋轉時重置計數器,以便下次按下時重新開始旋轉
clickCount = 0;
}
}
}