Barra de Loading com Cronometro digital(animação)
2 participantes
Página 1 de 1
Barra de Loading com Cronometro digital(animação)
Estou precisando fazer uma barra de loading, que não seria uma barra, mas um cronometro digital que vai mudando os numeros até chegar ao final e carregar a cena. Como se fosse um contador digital progressivo.
E queria carregar o loading clicando no botão canvas. o script que tenho é esse, estou com dúvida de como posso fazer pra carregar o loading:
E queria carregar o loading clicando no botão canvas. o script que tenho é esse, estou com dúvida de como posso fazer pra carregar o loading:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.Audio;
using UnityEngine.SceneManagement;
public class StartOptions : MonoBehaviour {
public int sceneToStart = 1; //Index number in build settings of scene to load if changeScenes is true
public bool changeScenes; //If true, load a new scene when Start is pressed, if false, fade out UI and continue in single scene
public bool changeMusicOnStart; //Choose whether to continue playing menu music or start a new music clip
[HideInInspector] public bool inMainMenu = true; //If true, pause button disabled in main menu (Cancel in input manager, default escape key)
[HideInInspector] public Animator animColorFade; //Reference to animator which will fade to and from black when starting game.
[HideInInspector] public Animator animMenuAlpha; //Reference to animator that will fade out alpha of MenuPanel canvas group
public AnimationClip fadeColorAnimationClip; //Animation clip fading to color (black default) when changing scenes
[HideInInspector] public AnimationClip fadeAlphaAnimationClip; //Animation clip fading out UI elements alpha
private PlayMusic playMusic; //Reference to PlayMusic script
private float fastFadeIn = .01f; //Very short fade time (10 milliseconds) to start playing music immediately without a click/glitch
private ShowPanels showPanels; //Reference to ShowPanels script on UI GameObject, to show and hide panels
void Awake()
{
//Get a reference to ShowPanels attached to UI object
showPanels = GetComponent ();
//Get a reference to PlayMusic attached to UI object
playMusic = GetComponent ();
}
public void StartButtonClicked()
{
//If changeMusicOnStart is true, fade out volume of music group of AudioMixer by calling FadeDown function of PlayMusic, using length of fadeColorAnimationClip as time.
//To change fade time, change length of animation "FadeToColor"
if (changeMusicOnStart)
{
playMusic.FadeDown(fadeColorAnimationClip.length);
}
//If changeScenes is true, start fading and change scenes halfway through animation when screen is blocked by FadeImage
if (changeScenes)
{
//Use invoke to delay calling of LoadDelayed by half the length of fadeColorAnimationClip
Invoke ("LoadDelayed", fadeColorAnimationClip.length * .5f);
//Set the trigger of Animator animColorFade to start transition to the FadeToOpaque state.
animColorFade.SetTrigger ("fade");
}
//If changeScenes is false, call StartGameInScene
else
{
//Call the StartGameInScene function to start game without loading a new scene.
StartGameInScene();
}
}
//Once the level has loaded, check if we want to call PlayLevelMusic
void OnLevelWasLoaded()
{
//if changeMusicOnStart is true, call the PlayLevelMusic function of playMusic
if (changeMusicOnStart)
{
playMusic.PlayLevelMusic ();
}
}
public void LoadDelayed()
{
//Pause button now works if escape is pressed since we are no longer in Main menu.
inMainMenu = false;
//Hide the main menu UI element
showPanels.HideMenu ();
//Load the selected scene, by scene index number in build settings
SceneManager.LoadScene (sceneToStart);
}
public void HideDelayed()
{
//Hide the main menu UI element after fading out menu for start game in scene
showPanels.HideMenu();
}
public void StartGameInScene()
{
//Pause button now works if escape is pressed since we are no longer in Main menu.
inMainMenu = false;
//If changeMusicOnStart is true, fade out volume of music group of AudioMixer by calling FadeDown function of PlayMusic, using length of fadeColorAnimationClip as time.
//To change fade time, change length of animation "FadeToColor"
if (changeMusicOnStart)
{
//Wait until game has started, then play new music
Invoke ("PlayNewMusic", fadeAlphaAnimationClip.length);
}
//Set trigger for animator to start animation fading out Menu UI
animMenuAlpha.SetTrigger ("fade");
Invoke("HideDelayed", fadeAlphaAnimationClip.length);
SceneManager.LoadScene ("senado");
}
public void PlayNewMusic()
{
//Fade up music nearly instantly without a click
playMusic.FadeUp (fastFadeIn);
//Play music clip assigned to mainMusic in PlayMusic script
playMusic.PlaySelectedMusic (1);
}
}
Última edição por giscardgoedert em Sex Jun 24, 2016 2:26 pm, editado 2 vez(es) (Motivo da edição : Os scripts devem ser inseridos dentro da caixa de códigos que o fórum oferece)
trueheroes- Iniciante
- PONTOS : 3185
REPUTAÇÃO : 1
Respeito as regras :
Re: Barra de Loading com Cronometro digital(animação)
Cara, difícil ajudar... Não entendi muito bem sua dúvida.
Esse script que você passou está sem os scripts complementares, e além disso, a void Awake está setando 'coisa nenhuma' por assim dizer.
O loading é fácil de fazer, veja este exemplo simples:
Esse script que você passou está sem os scripts complementares, e além disso, a void Awake está setando 'coisa nenhuma' por assim dizer.
O loading é fácil de fazer, veja este exemplo simples:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Load : MonoBehaviour {
public string cenaACarregar;
bool mostrarCarregamento = false;
int progresso = 0;
void Update () {
if (Input.GetKeyDown (KeyCode.Space)) {
StartCoroutine(CenaDeCarregamento(cenaACarregar));
}
}
IEnumerator CenaDeCarregamento (string cena){
mostrarCarregamento = true;
AsyncOperation carregamento = SceneManager.LoadSceneAsync (cena);
while (!carregamento.isDone) {
progresso = (int)(carregamento.progress*100);
yield return null;
}
}
void OnGUI (){
if (mostrarCarregamento == true) {
GUI.contentColor = Color.white;
GUI.skin.label.fontSize = (int)(Screen.height/25);
GUI.Label(new Rect(Screen.width - 250, Screen.height - 50, Screen.width, Screen.height),"Progresso do carregamento: " + progresso + "%");
}
}
}
Re: Barra de Loading com Cronometro digital(animação)
Será como um impostômetro, onde os números vão trocando (vai aumentando o valor de imposto arrecadado) conforme carrega o loading.
trueheroes- Iniciante
- PONTOS : 3185
REPUTAÇÃO : 1
Respeito as regras :
Re: Barra de Loading com Cronometro digital(animação)
Preciso que você passe todos os scripts envolvidos, para eu poder testar...
E para fazer ele ir aumentando devagar, basta utilizar um Lerp para o valor do Loading
E para fazer ele ir aumentando devagar, basta utilizar um Lerp para o valor do Loading
Tópicos semelhantes
» Problema com uma barra de loading
» Inconveniente na barra de loading (carregamento)
» [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
» [Duvida]Como fazer uma barra de vida usando o canvas?obs:so a parte de diminuir a barra
» Gostaria de fazer a animação do arco seguir animação do personagem
» Inconveniente na barra de loading (carregamento)
» [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
» [Duvida]Como fazer uma barra de vida usando o canvas?obs:so a parte de diminuir a barra
» Gostaria de fazer a animação do arco seguir animação do personagem
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos