基本上,我想要做的是当按Z - 它执行函数旋转,X - 它执行函数停止旋转。之前,我的UI按钮工作得很好,现在我尝试按按钮,但没有任何反应。执行按钮按钮(unity3d/C#)
此外,如果您可以建议如何通过只按“空格”按钮来开始纺纱和停止纺纱,那就太好了。
继承人到目前为止我的代码:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class spin : MonoBehaviour
{
public float speed = 500f;
public Button starter;
public Button stopper;
bool isSpinning = false;
IEnumerator spinnerCoroutine;
void Start()
{
//The spin function
spinnerCoroutine = spinCOR();
//Button btn = starter.GetComponent<Button>();
//Button butn = stopper.GetComponent<Button>();
//butn.onClick.AddListener(FidgetSpinnerStop);
//btn.onClick.AddListener(FidgetSpinnerStart);
if (Input.GetKey(KeyCode.Z)) {
FidgetSpinnerStart();
}
if (Input.GetKey(KeyCode.X)) {
FidgetSpinnerStop();
}
}
IEnumerator spinCOR()
{
//Spin forever untill FidgetSpinnerStop is called
while (true)
{
transform.Rotate(Vector3.up, speed * Time.deltaTime);
//Wait for the next frame
yield return null;
}
}
void FidgetSpinnerStart()
{
//Spin only if it is not spinning
if (!isSpinning)
{
isSpinning = true;
StartCoroutine(spinnerCoroutine);
}
}
void FidgetSpinnerStop()
{
//Stop Spinning only if it is already spinning
if (isSpinning)
{
StopCoroutine(spinnerCoroutine);
isSpinning = false;
}
}
}
感谢。
的飞杰微调趋势也太过分了...... – Hellium