carregamento de dados entre cenas
2 participantes
Página 1 de 1
carregamento de dados entre cenas
opa so eu de novo então queria saber como eu faço para quando meu player for para outra cena fique salvo as armas do player fique salvo, dele estou usando o script do marcos pra salvar posição do player quando troca de cena
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*]using UnityEngine.SceneManagement;
[*]//este script deve estar no seu Player e deve ter o nome "SalvarPosic"
[*]public class SalvarPosic : MonoBehaviour {
[*] string nomeCenaAtual;
[*] void Awake () {
[*] nomeCenaAtual = SceneManager.GetActiveScene ().name;
[*] }
[*] void Start(){
[*] if (PlayerPrefs.HasKey (nomeCenaAtual + "X") && PlayerPrefs.HasKey (nomeCenaAtual + "Y") && PlayerPrefs.HasKey (nomeCenaAtual + "Z")) {
[*] transform.position = new Vector3 (PlayerPrefs.GetFloat (nomeCenaAtual + "X"), PlayerPrefs.GetFloat (nomeCenaAtual + "Y"), PlayerPrefs.GetFloat (nomeCenaAtual + "Z"));
[*] }
[*] }
[*] public void SalvarLocalizacao () {
[*] PlayerPrefs.SetFloat (nomeCenaAtual + "X", transform.position.x);
[*] PlayerPrefs.SetFloat (nomeCenaAtual + "Y", transform.position.y);
[*] PlayerPrefs.SetFloat (nomeCenaAtual + "Z", transform.position.z);
[*] }
[*]}
[/list]
e tambem a de loanding entre cena
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*]using UnityEngine.SceneManagement;
[*]public class Carregar : MonoBehaviour {
[*] bool podeInteragir = false;
[*] public GameObject Jogador;
[*] public string CenaACarregar;
[*] void Update(){
[*] if (podeInteragir == true && Input.GetKeyDown (KeyCode.E)) {
[*] Jogador.GetComponent<SalvarPosic> ().SalvarLocalizacao ();
[*] SceneManager.LoadScene (CenaACarregar);
[*] }
[*] }
[*] void OnTriggerEnter(){
[*] podeInteragir = true;
[*] }
[*] void OnTriggerExit(){
[*] podeInteragir = false;
[*] }
[*] void OnGUI(){
[*] if (podeInteragir == true) {
[*] GUIStyle stylez = new GUIStyle ();
[*] stylez.alignment = TextAnchor.MiddleCenter;
[*] GUI.skin.label.fontSize = 20;
[*] GUI.Label (new Rect (Screen.width / 2 - 50, Screen.height / 2 + 50, 200, 30), "Pressione 'E'");
[*] }
[*] }
[*]}
[/list]
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*]using UnityEngine.SceneManagement;
[*]//este script deve estar no seu Player e deve ter o nome "SalvarPosic"
[*]public class SalvarPosic : MonoBehaviour {
[*] string nomeCenaAtual;
[*] void Awake () {
[*] nomeCenaAtual = SceneManager.GetActiveScene ().name;
[*] }
[*] void Start(){
[*] if (PlayerPrefs.HasKey (nomeCenaAtual + "X") && PlayerPrefs.HasKey (nomeCenaAtual + "Y") && PlayerPrefs.HasKey (nomeCenaAtual + "Z")) {
[*] transform.position = new Vector3 (PlayerPrefs.GetFloat (nomeCenaAtual + "X"), PlayerPrefs.GetFloat (nomeCenaAtual + "Y"), PlayerPrefs.GetFloat (nomeCenaAtual + "Z"));
[*] }
[*] }
[*] public void SalvarLocalizacao () {
[*] PlayerPrefs.SetFloat (nomeCenaAtual + "X", transform.position.x);
[*] PlayerPrefs.SetFloat (nomeCenaAtual + "Y", transform.position.y);
[*] PlayerPrefs.SetFloat (nomeCenaAtual + "Z", transform.position.z);
[*] }
[*]}
[/list]
e tambem a de loanding entre cena
[list=linenums]
[*]using UnityEngine;
[*]using System.Collections;
[*]using UnityEngine.SceneManagement;
[*]public class Carregar : MonoBehaviour {
[*] bool podeInteragir = false;
[*] public GameObject Jogador;
[*] public string CenaACarregar;
[*] void Update(){
[*] if (podeInteragir == true && Input.GetKeyDown (KeyCode.E)) {
[*] Jogador.GetComponent<SalvarPosic> ().SalvarLocalizacao ();
[*] SceneManager.LoadScene (CenaACarregar);
[*] }
[*] }
[*] void OnTriggerEnter(){
[*] podeInteragir = true;
[*] }
[*] void OnTriggerExit(){
[*] podeInteragir = false;
[*] }
[*] void OnGUI(){
[*] if (podeInteragir == true) {
[*] GUIStyle stylez = new GUIStyle ();
[*] stylez.alignment = TextAnchor.MiddleCenter;
[*] GUI.skin.label.fontSize = 20;
[*] GUI.Label (new Rect (Screen.width / 2 - 50, Screen.height / 2 + 50, 200, 30), "Pressione 'E'");
[*] }
[*] }
[*]}
[/list]
edu63- Iniciante
- PONTOS : 1331
REPUTAÇÃO : 1
Respeito as regras :
Re: carregamento de dados entre cenas
edu63 escreveu:opa so eu de novo então queria saber como eu faço para quando meu player for para outra cena fique salvo as armas do player fique salvo, dele estou usando o script do marcos pra salvar posição do player quando troca de cena
Utilize playerprefs pra salvar as variaveis.
https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
Outro modo seria criando um arquivo e salvando, procure-se informar sobre serialização, se quiseres seguir esse caminho, Note que é mais complicado...
Tópicos semelhantes
» erro com carregamento de dados
» Delay entre CENAS
» Transição de Cores Entre Cenas!
» SAVE E LOAD ENTRE CENAS
» Reproduzir audio no if c## e musica continuar tocando entre cenas.
» Delay entre CENAS
» Transição de Cores Entre Cenas!
» SAVE E LOAD ENTRE CENAS
» Reproduzir audio no if c## e musica continuar tocando entre cenas.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos