-1

全て。私が達成しようとしているのは、各尾の位置が前の尾の位置に続くヘビの単純なゲームです。しかし、何らかの理由で、タイルは頭のようにグリッド システムで移動するのではなく、前の尾の位置を斜めにたどります。これが私のコードです

頭の動きのクラス

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;
    }
}

また、明確にするために、2D に vector2 を使用する必要があるときに、Vector3 を使用していることはわかっていますが、現在は正しく機能しており、後で変更します。

4

1 に答える 1