【发布时间】:2015-07-13 17:12:22
【问题描述】:
我正在为按下按钮时输出图像的触摸屏应用程序创建自定义键盘。然后这些图像填充网格布局以保持线性组织。我需要一个退格键。我真的很挣扎退格。我无法找到附加代码的问题。当我点击 deleteKey 按钮时,没有任何反应,我不确定哪里出错了,但我希望它删除 messagePanel 游戏对象中的最后一个孩子。
List<GameObject> msgSymbols = new List<GameObject>();
public string prefabPath;
int msgLength;
Vector3 symbolPos;
GameObject symbolChar;
GameObject msgPanel;
Vector3 symbolScale = new Vector3(1.0f, 1.0f, 1.0f);
GameObject[] symbolKeys;
GameObject deleteKey;
void Awake()
{
msgPanel = GameObject.FindGameObjectWithTag("MessagePanel");
symbolKeys = GameObject.FindGameObjectsWithTag("SymbolKey");
deleteKey = GameObject.FindGameObjectWithTag("DeleteKey");
}
#region IPointerClickHandler implementation
public void OnPointerClick (PointerEventData eventData)
{
if (transform.CompareTag("SymbolKey"))
{
symbolChar = Instantiate(Resources.Load (prefabPath)) as GameObject; // Instantiate an symbol
symbolChar.transform.SetParent(msgPanel.transform); // Parent it to grid
symbolChar.transform.localScale = symbolScale; // Set scale of all objects added
symbolPos = symbolChar.transform.position; // Find position of objects in grid
msgLength = msgPanel.transform.childCount;
foreach(Transform t in msgPanel.transform) // Create running list of symbol objects added to messagePanel
{
msgSymbols.Add(t.gameObject);
}
Debug.Log (msgLength);
}
else if (transform.CompareTag("DeleteKey"))
{
if(msgSymbols.Count == 0) return;
Destroy(msgSymbols.LastOrDefault());
// Old attempts
// msgSymbols.RemoveAt(msgLength - 1);
// Destroy(msgSymbols[msgSymbols.Count-1]);
}
}
#endregion
【问题讨论】: