Скрипт:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoadSpawner : MonoBehaviour
{
public GameObject[] RoadBlockPrefabs;
public GameObject StartBlock;
float BlockYPos = 0;
int BlocksCount = 7;
float blockLenght = 0;
public Transform CameraTransf;
List<GameObject> CurrentBlocks = new List<GameObject>();
void Start()
{
BlockYPos = StartBlock.transform.position.y;
blockLenght = StartBlock.GetComponent<BoxCollider2D>().bounds.size.y;
for (int i = 0; i < 1; i++)
{
SpawnBlock();
}
for (int i = 0; i < BlocksCount - 1; i++)
{
blockLenght = CurrentBlocks[i].GetComponent<BoxCollider2D>().bounds.size.y;
SpawnBlock();
}
}
void Update()
{
}
void SpawnBlock()
{
GameObject block = Instantiate(RoadBlockPrefabs[Random.Range(0, RoadBlockPrefabs.Length)], transform);
BlockYPos += blockLenght;
block.transform.position = new Vector2(4.5f, BlockYPos);
CurrentBlocks.Add(block);
}
}
using System.Collections.Generic;
using UnityEngine;
public class RoadSpawner : MonoBehaviour
{
public GameObject[] RoadBlockPrefabs;
public GameObject StartBlock;
float BlockYPos = 0;
int BlocksCount = 7;
float blockLenght = 0;
public Transform CameraTransf;
List<GameObject> CurrentBlocks = new List<GameObject>();
void Start()
{
BlockYPos = StartBlock.transform.position.y;
blockLenght = StartBlock.GetComponent<BoxCollider2D>().bounds.size.y;
for (int i = 0; i < 1; i++)
{
SpawnBlock();
}
for (int i = 0; i < BlocksCount - 1; i++)
{
blockLenght = CurrentBlocks[i].GetComponent<BoxCollider2D>().bounds.size.y;
SpawnBlock();
}
}
void Update()
{
}
void SpawnBlock()
{
GameObject block = Instantiate(RoadBlockPrefabs[Random.Range(0, RoadBlockPrefabs.Length)], transform);
BlockYPos += blockLenght;
block.transform.position = new Vector2(4.5f, BlockYPos);
CurrentBlocks.Add(block);
}
}