Quantcast
Channel: Questions in topic: "endless"
Viewing all articles
Browse latest Browse all 123

How to make endless 2D map in every direction

$
0
0
With the script I got, I can go to the right and it will never end, I can go up and it'll be endless too etc. but when I go somewhere and try to change direction, it's not working. using System.Collections.Generic; using System.Collections; using UnityEngine; public class LevelGenerator : MonoBehaviour { private const float PLAYER_DISTANCE_SPAWN_LEVEL_PART = 100f; [SerializeField] private Transform levelPart_Start; [SerializeField] private List levelPartList; [SerializeField] private Transform player; private Vector3 lastRightPosition; private Vector3 lastUpPosition; private Vector3 lastLeftPosition; private Vector3 lastDownPosition; private Vector3 playerPosition; private void Awake() { lastRightPosition = levelPart_Start.Find("RightPosition").position; lastUpPosition = levelPart_Start.Find("UpPosition").position; lastLeftPosition = levelPart_Start.Find("LeftPosition").position; lastDownPosition = levelPart_Start.Find("DownPosition").position; } private void Update() { playerPosition = player.Find("Player").position; if (Vector3.Distance(playerPosition, lastRightPosition) < PLAYER_DISTANCE_SPAWN_LEVEL_PART) { SpawnLevelPartRight(); } if (Vector3.Distance(playerPosition, lastUpPosition) < PLAYER_DISTANCE_SPAWN_LEVEL_PART) { SpawnLevelPartUp(); } if (Vector3.Distance(playerPosition, lastLeftPosition) < PLAYER_DISTANCE_SPAWN_LEVEL_PART) { SpawnLevelPartLeft(); } if (Vector3.Distance(playerPosition, lastDownPosition) < PLAYER_DISTANCE_SPAWN_LEVEL_PART) { SpawnLevelPartDown(); } } private void SpawnLevelPartRight() { Transform chosenLevelPart = levelPartList[Random.Range(0, levelPartList.Count)]; Transform lastLevelPartTransform = SpawnLevelPart(chosenLevelPart, lastRightPosition); lastRightPosition = lastLevelPartTransform.Find("RightPosition").position; } private void SpawnLevelPartUp() { Transform chosenLevelPart = levelPartList[Random.Range(0, levelPartList.Count)]; Transform lastLevelPartTransform = SpawnLevelPart(chosenLevelPart, lastUpPosition); lastUpPosition = lastLevelPartTransform.Find("UpPosition").position; } private void SpawnLevelPartLeft() { Transform chosenLevelPart = levelPartList[Random.Range(0, levelPartList.Count)]; Transform lastLevelPartTransform = SpawnLevelPart(chosenLevelPart, lastLeftPosition); lastLeftPosition = lastLevelPartTransform.Find("LeftPosition").position; } private void SpawnLevelPartDown() { Transform chosenLevelPart = levelPartList[Random.Range(0, levelPartList.Count)]; Transform lastLevelPartTransform = SpawnLevelPart(chosenLevelPart, lastDownPosition); lastDownPosition = lastLevelPartTransform.Find("DownPosition").position; } private Transform SpawnLevelPart(Transform levelPart, Vector3 spawnPosition) { Transform levelPartTransform = Instantiate(levelPart, spawnPosition, Quaternion.identity); return levelPartTransform; } }

Viewing all articles
Browse latest Browse all 123

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>