- Get link
- X
- Other Apps
- Get link
- X
- Other Apps
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.
Comments

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
-