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 : 798
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...

» erro com carregamento de dados
» Delay entre CENAS
» SAVE E LOAD ENTRE CENAS
» Transição de Cores Entre Cenas!
» DUVIDA - COMO FAZER O PLAYER TRANSITAR ENTRE AS CENAS
» Delay entre CENAS
» SAVE E LOAD ENTRE CENAS
» Transição de Cores Entre Cenas!
» DUVIDA - COMO FAZER O PLAYER TRANSITAR ENTRE AS CENAS
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos