void OnChangeBackgroundSide(string backgroundName) { int i = container.childCount; while (i > 0) { Destroy(container.GetChild(i - 1).gameObject); i--; } all.Clear(); for (int a = 0; a < 3; a++) { BackgroundSideData bsd = Instantiate(Resources.Load("fondos/" + backgroundName, typeof(BackgroundSideData))) as BackgroundSideData; all.Add(bsd); } z_length = 0; foreach (BackgroundSideData data in all) { z_length += data.z_length; data.offset = z_length; AddNewBgSide(data); } }
void AddNewBgSide(BackgroundSideData newGO) { BackgroundSideData go = Instantiate(newGO); go.transform.SetParent(container); go.transform.localPosition = new Vector3(0, 0, z_length); go.transform.localScale = Vector3.one; all.Add(go); }
bool IsAnActiveBackgroundSide(BackgroundSideData data) { foreach (BackgroundSideData d in allBackgroundSides) { if (d.backgroundSideName == data.backgroundSideName) { return(true); } } return(false); }
void Update() { if (!isMoving) { return; } if (!charactersManager) { return; } float charactersDistance = charactersManager.getDistance(); if (charactersDistance == lastCharactersDistance) { return; } lastCharactersDistance = charactersDistance; pos_z += (Time.deltaTime * speed); BackgroundSideData toDelete = null; foreach (BackgroundSideData go in all) { Vector3 pos = go.transform.localPosition; if (pos.z < charactersDistance - offset) { if (!IsAnActiveBackgroundSide(go)) { toDelete = go; } else { go.offset += z_length; } } pos.z = charactersDistance + go.offset - pos_z; go.transform.localPosition = pos; } if (toDelete != null) { all.Remove(toDelete); Destroy(toDelete.gameObject); } }
void Update() { if (!isMoving) { return; } if (!charactersManager) { return; } float charactersDistance = charactersManager.getDistance(); if (videoGameBossPanel != null) { videoGameBossPanel.transform.localPosition = new Vector3(0, 0, charactersDistance); } if (charactersDistance == lastCharactersDistance) { return; } lastCharactersDistance = charactersDistance; pos_z += (Time.deltaTime * speed); BackgroundSideData toDelete = null; foreach (BackgroundSideData go in all) { Vector3 pos = go.transform.localPosition; if (pos.z < charactersDistance - offset) { go.offset += z_length; } pos.z = charactersDistance + go.offset - pos_z; go.transform.localPosition = pos; } }
void AddNewBgSide(BackgroundSideData newGO) { newGO.transform.SetParent(container); newGO.transform.localPosition = new Vector3(0, 0, z_length); newGO.transform.localScale = Vector3.one; }