本文参考 参考资料1,探究
按钮按下,调用函 数StartAssignment
public void StartAssignment(string keyName)
{
if(!waitingForKey)
StartCoroutine(AssignKey(keyName));
}
StarCoroutine 是开启一个协程,参考 参考资料2、3
进入协程函数
/*AssignKey takes a keyName as a parameter. The
* keyName is checked in a switch statement. Each
* case assigns the command that keyName represents
* to the new key that the user presses, which is grabbed
* in the OnGUI() function, above.
*/
public IEnumerator AssignKey(string keyName)
{
waitingForKey = true;
yield return WaitForKey(); //Executes endlessly until user presses a key
switch(keyName)
{
case "forward":
GameManager.GM.forward = newKey; //Set forward to new keycode
buttonText.text = GameManager.GM.forward.ToString(); //Set button text to new ke