Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Start is called before the first frame update
- public GameObject player;
- public Vector2 spawnPlatformPos;
- public GameObject lastSpawnedPlatform;
- public GameObject coinHolderObj;
- CoinHolder coinHolder;
- bool canDoubleJump;
- int roundsPlayed;
- public GameObject[] platformTypes;
- System.Random rnd = new System.Random();
- public GameObject choosenPlatform;
- public int indexOfArray;
- public float width;
- private void Start()
- {
- coinHolderObj = GameObject.FindGameObjectWithTag("CoinHolder");
- coinHolder = coinHolderObj.GetComponent<CoinHolder>();
- canDoubleJump = coinHolder.doubleJump;
- coinHolder.roundsPlayed++;
- }
- private void Update()
- {
- if (player.transform.position.x > lastSpawnedPlatform.transform.position.x)
- {
- SpawnPlatform();
- Debug.Log("Trying to spawn new platform");
- }
- }
- void SpawnFinishLine()
- {
- }
- void ChoosePlatformType()
- {
- indexOfArray = rnd.Next(0, 2);//mellan 0 och 1 men rnd.next är fucked så man måste ha en extra i max.
- if (choosenPlatform == platformTypes[1])
- {
- choosenPlatform = platformTypes[0];
- }
- else
- {
- choosenPlatform = platformTypes[indexOfArray];
- }
- }
- void SpawnPlatform()
- {
- width = lastSpawnedPlatform.GetComponent<BoxCollider2D>().bounds.size.x;
- ChoosePlatformType();
- FindSpawnPos();
- lastSpawnedPlatform = Instantiate(choosenPlatform, spawnPlatformPos, transform.rotation);
- }
- void FindSpawnPos()
- {
- if (lastSpawnedPlatform == null)
- {
- spawnPlatformPos = new Vector2(calculateSpawnX(), -4.73f);
- }
- else
- {
- spawnPlatformPos = new Vector2(calculateSpawnX(), calculateSpawnY());
- }
- }
- float calculateSpawnX()
- {
- float spawnPosX;
- if (canDoubleJump == true)
- {
- spawnPosX = lastSpawnedPlatform.transform.position.x + UnityEngine.Random.Range(0.5f, 2) + width;
- }
- else
- {
- spawnPosX = lastSpawnedPlatform.transform.position.x + UnityEngine.Random.Range(0.5f, 1.25f) + width;
- }
- return spawnPosX;
- }
- float calculateSpawnY()
- {
- float spawnPosY;
- if (canDoubleJump == true)
- {
- spawnPosY = UnityEngine.Random.Range(lastSpawnedPlatform.transform.position.y - 1.5f, lastSpawnedPlatform.transform.position.y + 1.5f);
- if (spawnPosY < -4.73f)
- {
- spawnPosY = -4.73f;
- }
- }
- else
- {
- spawnPosY = UnityEngine.Random.Range(lastSpawnedPlatform.transform.position.y - 0.75f, lastSpawnedPlatform.transform.position.y + 0.75f);
- if (spawnPosY < -4.73f)
- {
- spawnPosY = -4.73f;
- }
- }
- return spawnPosY;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement