2015-05-04 73 views
-2

我想知道是否有可能将键盘输入历史记录存储到数组中并在以后执行它们?基本上我有一个3D网格游戏和一个在网格中移动的角色。我希望用户在播放器保持静止时通过右下左上键输入所有的移动指令,一旦我按下输入键,播​​放器将开始执行存储在阵列中的每条指令。 有什么建议吗?如何将keycode存储到数组中并执行它们?

+0

是 - 完全地按照你所拥有的在后,它应该工作。你有什么确切的问题实施它? –

+0

对不起,我很不清楚。我一直在环顾API并且无法准确找到我需要的东西。像我应该调用什么函数来执行每条指令时,通过数组循环? –

+0

将条目存储在列表集合中。将该收集用作FIFO。在列表末尾添加新条目。删除项目零处的条目。你也可以使用一个StringBuilder,它是List 的一种。 – jdweng

回答

1

我会建议使用List<T>

例子:

using UnityEngine; 
using System.Collections; 
using System.Collections.Generic; 

public class Training : MonoBehaviour { 

public List<KeyCode> previousActions; 

void Update(){ 
    if(Input.GetKeyDown(KeyCode.A)){ 
     Debug.Log("Do something"); 
     previousActions.Add(KeyCode.A); 
    }else if(Input.GetKeyDown(KeyCode.S)){ 
     Debug.Log("Do something else"); 
     previousActions.Add(KeyCode.S); 
    //---Check the list--// 
    }else if(Input.GetKeyDown(KeyCode.D)){ 
     Debug.Log("Check the list"); 
     for(int i = 0;i < previousActions.Count;i++){ 
      Debug.Log(previousActions[i]); 
     } 
    } 
} 
相关问题