// Método executado quando uma parte do background sair dos limites da tela public void SaiuTela(BackgroundParte backgroundParte) { BackgroundParte parteMaiorY = GetParteMaiorY(); Vector2 posicao = parteMaiorY.GetPosicao(); posicao.y += ((backgroundParte.GetAltura() / 2) + (parteMaiorY.GetAltura() / 2)); backgroundParte.SetarPosicao(posicao); }
private void Update() { BackgroundParte parteAtual = null; for (int i = 0; i < this.backgroundPartes.Length; i++) { parteAtual = this.backgroundPartes[i]; parteAtual.Mover((this.velocidadeMovimentoBackground * Time.deltaTime)); } }
// Retorna o BackgroundParte que está localizada na posição Y de maior valor private BackgroundParte GetParteMaiorY() { BackgroundParte parteMaiorY = null; BackgroundParte parteAtual = null; for (int i = 0; i < this.backgroundPartes.Length; i++) { parteAtual = this.backgroundPartes[i]; if (parteMaiorY == null) { parteMaiorY = parteAtual; } else { Vector2 posicaoParteMaiorY = parteMaiorY.GetPosicao(); Vector2 posicaoParteAtual = parteAtual.GetPosicao(); if (posicaoParteAtual.y > posicaoParteMaiorY.y) { parteMaiorY = parteAtual; } } } return(parteMaiorY); }
private void Start() { this.backgroundPartes = this.GetComponentsInChildren <BackgroundParte>(); BackgroundParte parteAnterior = null; BackgroundParte parteAtual = null; for (int i = 0; i < this.backgroundPartes.Length; i++) { parteAtual = this.backgroundPartes[i]; parteAtual.Inicializar(this); if (parteAnterior == null) { parteAtual.SetarPosicao(this.transform.position); } else { Vector2 position = parteAnterior.GetPosicao(); position.y += ((parteAtual.GetAltura() / 2) + (parteAnterior.GetAltura() / 2)); parteAtual.SetarPosicao(position); } parteAnterior = parteAtual; } }