【发布时间】:2021-09-24 02:40:05
【问题描述】:
所以我有这段代码可以生成一个 7x50 的网格。
public class FieldController : MonoBehaviour
{
[SerializeField] private GameObject gridPrefab;
[SerializeField] private int rows = 50;
[SerializeField] private int columns = 7;
[SerializeField] private float tileSize = 1;
private GameObject tile;
private GameObject parentObject;
private float gridW;
private float gridH;
private float posX;
private float posY;
private void Start()
{
parentObject = new GameObject("Parent");
GenerateGrid();
}
private void Update()
{
MoveGridDown();
}
void GenerateGrid()
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < columns; j++)
{
tile = Instantiate(gridPrefab, parentObject.transform);
posX = j * tileSize;
posY = i * tileSize;
tile.transform.position = new Vector2(posX, posY);
}
}
SetParentToStart(parentObject);
}
void SetParentToStart(GameObject parent)
{
parent.transform.position = new Vector3(-columns / 2 + tileSize, rows / 10, 0);
}
void MoveGridDown()
{
parentObject.transform.position -= new Vector3(0, FallingObjectBehaviour.FallingSpeed * Time.deltaTime);
}
}
这是它的外观: https://imgur.com/a/nKtOuyV
我想要做的是能够在前一个网格到达末尾时生成新网格,这样看起来网格是无限的。
我尝试为父级使用额外的 GameObject 并在它们之间切换,但结果有问题。 有没有办法让它成为可能?
【问题讨论】:
-
我建议你观看这个视频(视差)并根据你的情况调整它:youtube.com/watch?v=zit45k6CUMk 我认为原则是你使用两个网格,每次第一个从屏幕上消失时你将它移到第二个的顶部。
标签: c# .net unity3d game-development