今天遇到的问题。
1.什么是instance单例
参考了https://fengyu.name/article/305的一篇文章。了解到,“GameManager的GameObject,在关卡1中,我们创建了这个GameObject,并对分数进行了存储,这时,我们成功过了第一关,需要切换到第二关,切换场景时,默认会销毁当前场景的全部GameObject,而我们需要保留分数信息。这种情况下,我们就需要单例模式来实现这个功能。”也就是意味着,单例模式应该是用那种类似于游戏规则或者不变的东西。
2.关于管道随机变化的代码分析
public class ColumnController : MonoBehaviour
{
GameObject[] colums;
public GameObject columnPrefab;
public int columnMax = 5;
Vector2 originalPos = new Vector2(-10,-20);
public float spawnRate = 3f;
public float yMin = -1f;
public float yMax = 3.5f;
public float xPos = 10f;
float timeSinceLastSpawned;
int currentColumn = 0;
void Start()
{
colums = new GameObject[columnMax];
for (int i = 0; i < columnMax; i++)
{
colums[i] = Instantiate(columnPrefab,originalPos,Quaternion.identity);
}
}
void Update()
{
timeSinceLastSpawned += Time.deltaTime;
if (GameMode.instance.gameOver == false && timeSinceLastSpawned >= spawnRate)
{
timeSinceLastSpawned = 0f;
float yPos = Random.Range(yMin,yMax);
colums[currentColumn].transform.position = new Vector2(xPos, yPos);
currentColumn++;
if (currentColumn >= columnMax)
{
currentColumn = 0;
}
}
}
}
以上大概理解起来没有问题,但还需要注意。
colums[i] = Instantiate(columnPrefab,originalPos,Quaternion.identity);
个人为也许是实例化吧。
重要代码先付在这。