一、悔棋原理
每次把创建的白棋和黑棋对象的坐标压入栈,每次悔棋出栈两个坐标,如果栈中元素不足2,则不出。
此时的坐标是unity的实际坐标加上我们的近似值0.5,对应数组还是要加7来判断
二、创建悔棋按钮
1、UI - Button
适当缩小按钮
锚点设为右下角
ui屏幕自适应
文字加描边
图片表示按钮状态
三、代码实现
1、声明栈
Stack<Transform> chessStack = new Stack<Transform>();
2、压入坐标
GameObject go = Instantiate(prefabs[1], new Vector3(pos[0] - 7, pos[1] - 7), Quaternion.identity);
chessStack.Push(go.transform);
3、悔棋函数
public void RestractChess()
{
if (chessStack.Count >= 2)
{
Transform pos = chessStack.Pop();
grid[(int)(pos.position.x + 7), (int)(pos.position.y + 7)] = 0;
Destroy(pos.gameObject);
pos = chessStack.Pop();
grid[(int)(pos.position.x + 7), (int)(pos.position.y + 7)] = 0;
Destroy(pos.gameObject);
}
}