public static GameModeS instance;//用单例控制全局。
void Start () {
instance = this;
}
public void AddScore(int value)//这种分数都放到GameManger里
{
score+= value;
}
private GameObject[] colums;//柱子生存逻辑
public int columnMax = 5;
public float spawnRate = 3f;
public float yMin =-1.6f;
public float yMax = 2.8f;
public float xPos = 0f;
private float timer;
private Vector2 originPos = new Vector2(-10,-20);
public GameObject columnPrefab;
private int currentColumn = 0;
private void Start()
{
colums = new GameObject[columnMax];
for(int i =0; i<columnMax; i++)
{
colums[i] = Instantiate(columnPrefab, originPos, Quaternion.identity);
}
}
private void Update()
{
timer += Time.deltaTime;
if(GameModeS.instance.gameOver == false&&timer >= spawnRate)
{
timer = 0f;
float yPos = Random.Range(yMin, yMax);
colums[currentColumn].transform.position = new Vector2(xPos, yPos);
currentColumn++;
if(currentColumn >= columnMax)
{
currentColumn = 0;
}
}
}
场景移动:
private BoxCollider2D col;
private float groundLenght;
void Start () {
col = GetComponent<BoxCollider2D>();
groundLenght = col.size.x;
}
// Update is called once per frame
void Update () {
if (transform.position.x < -groundLenght)//如果移动的位置超过了
{
Vector2 offset = new Vector2(groundLenght * 2f, 0);
transform.position = (Vector2)transform.position + offset;
}
}