This weekend I added functionality that will add new corridor when player activate the trigger and remove old corridor that is not in use anymore. In theory in game there will be only 2 corridors in one time. To illustrate it check this screenshot.
Currently I build only 1 type of corridor but I am planning to create at least 10 different. They will be stored in array and randomly pulled and added to scene. Corridors will not have the same sizes so I will have to make sure that transition between them is very smooth.
To main camera that is following character I added script (LevelCount) that will hold information how many levels are in the game.
To my first corridor that is build in the game I added this script(LevelAppear).
It works fine however I am not very happy with hard coded position when adding new level (1st line of AddLevel function). I must find a better way of finding a point where new corridor will be added without having to hard code position. If anyone have any ideas I will be grateful.
Till next time.
Currently I build only 1 type of corridor but I am planning to create at least 10 different. They will be stored in array and randomly pulled and added to scene. Corridors will not have the same sizes so I will have to make sure that transition between them is very smooth.
To main camera that is following character I added script (LevelCount) that will hold information how many levels are in the game.
public GameObject[] gameLevels;
public int levelsAdded = 0;
// Use this for initialization
void Start () {
// Store gameLevels in list, so we can remove them later for performance
gameLevels = new GameObject[2];
}
// Update is called once per frame
void Update () {
}
To my first corridor that is build in the game I added this script(LevelAppear).
public class LevelAppear : MonoBehaviour {
private GameObject spawnPoint;
private GameObject Corridor;
bool PlayerEnteredZone;
public GameObject Player;
//hold information on levels
private LevelCount LevelCountScript;
// Use this for initialization
void Start () {
spawnPoint = GameObject.Find("spawnPoint");
Corridor = GameObject.FindGameObjectWithTag("Corridor");
LevelCountScript = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<LevelCount>();
}
// Update is called once per frame
void Update () {
if(PlayerEnteredZone)
{
AddLevel();
}
}
void OnTriggerEnter(Collider player)
{
PlayerEnteredZone = true;
}
void AddLevel()
{
GameObject objectInstantiated = Instantiate(Corridor, new Vector3(transform.position.x + 28f, transform.position.y + 31f, transform.position.z + 20f), Quaternion.identity) as GameObject;
if(LevelCountScript.levelsAdded == 2)
{
LevelCountScript.levelsAdded = LevelCountScript.levelsAdded -2;
Destroy(LevelCountScript.gameLevels[LevelCountScript.levelsAdded]);
}
if(LevelCountScript.levelsAdded == 1)
{
LevelCountScript.levelsAdded = LevelCountScript.levelsAdded--;
Destroy(LevelCountScript.gameLevels[LevelCountScript.levelsAdded]);
}
LevelCountScript.gameLevels[LevelCountScript.levelsAdded] = objectInstantiated;
LevelCountScript.levelsAdded++;
PlayerEnteredZone = false;
}
}
It works fine however I am not very happy with hard coded position when adding new level (1st line of AddLevel function). I must find a better way of finding a point where new corridor will be added without having to hard code position. If anyone have any ideas I will be grateful.
Till next time.

2BE9BF5DF6
ReplyDeletegüvenilir takipçi satın alma
Gerçek Takipçi
Para ile Takipçi
Bayan Takipçi
Instagram Takipçi Arttırma
AE719EE122
ReplyDeletekiralık hacker
hacker arıyorum
kiralık hacker
hacker arıyorum
-