全部。我想要完成的是一个简单的蛇游戏,其中每个尾部位置都遵循前一个尾部位置。但是由于某种原因,瓷砖沿对角线跟随先前的尾部位置,而不是像头部那样在网格系统中移动。这是我的代码
头部运动课
public float unitsPerFrame = 1;
void Update(){
if (Input.GetKey(KeyCode.UpArrow) && downDir == false)
{
transform.localRotation = Quaternion.Euler(0, 0, 0);
mDir = Vector3.up * unitsPerFrame;
}
}
...所有的方向都是一样的,我只是把这个包括在内,这样你就可以看到我的头部运动是如何运作的。
尾巴运动课
void Update()
{
tail[0].transform.position = Vector3.MoveTowards(tail[0].transform.localPosition, GameObject.Find("Player").transform.localPosition, 0.02f);
for(int i = 1; i < tail.Count; i++)
{
tail[i].transform.position = Vector3.MoveTowards(tail[i].transform.localPosition, tail[i - 1].transform.localPosition, 0.02f);
tail[i].transform.rotation = tail[i - 1].transform.rotation;
}
}
也只是为了澄清,我知道我正在使用 Vector3,当我应该将 vector2 用于 2D 时,但它现在运行正常,我稍后会更改它。