Salvar posição do personagem na cena
+2
Madness
Weslley
6 participantes
Página 1 de 1
Salvar posição do personagem na cena
Como faço pra meu personagem quando entrar em uma porta (mudar de cenário), quando voltar ele fica perto da porta que ele saiu? não sei exatamente como explicar isso direito, espero que tenham entendido
OBS: O jogo é em 2D
OBS: O jogo é em 2D
Última edição por willianroma em Ter Ago 23, 2016 2:28 pm, editado 2 vez(es)
willianroma- Avançado
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar posição do personagem na cena
https://www.youtube.com/watch?v=PdvzNocXhfo
Weslley- Moderador
- PONTOS : 5728
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Salvar posição do personagem na cena
Não sei se te entendi bem, o personagem vai salvar a ultima posição que ele esteve antes de trocar de scene (Entrar na porta¹) ? Ai quando ele voltar pela porta² ele vai estar perto da porta¹ ?
Madness- Designer
- PONTOS : 3611
REPUTAÇÃO : 222
Áreas de atuação : Designer
Iniciante C++
Quase um programador C#
Respeito as regras :
Re: Salvar posição do personagem na cena
Madness escreveu:Não sei se te entendi bem, o personagem vai salvar a ultima posição que ele esteve antes de trocar de scene (Entrar na porta¹) ? Ai quando ele voltar pela porta² ele vai estar perto da porta¹ ?
isso mesmo, é exatamente o que queria dizer.
willianroma- Avançado
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar posição do personagem na cena
O único jeito de fazer isto é com um "avião", que é +/- o que eu fiz neste vídeo:
É um objeto que mantêm as informações entre as cenas, então você pode dizer qual a última posição antes de dar load, e quando precisar voltar, você pode buscar no objeto "avião".
Fora disto, você pode utilizar PlayerPrefs ou Banco de dados, que é o aconselhado caso você esteja trabalhando com um número meio grande de cenas intercaladas.
@@@ edit - Pretendo trazer um tutorial sobre isto ainda esta semana. É um pedido antigo, mas eu simplesmente esqueci de fazer ou por na lista de pedidos O.o Vou fazê-lo o mais breve possível.
É um objeto que mantêm as informações entre as cenas, então você pode dizer qual a última posição antes de dar load, e quando precisar voltar, você pode buscar no objeto "avião".
Fora disto, você pode utilizar PlayerPrefs ou Banco de dados, que é o aconselhado caso você esteja trabalhando com um número meio grande de cenas intercaladas.
@@@ edit - Pretendo trazer um tutorial sobre isto ainda esta semana. É um pedido antigo, mas eu simplesmente esqueci de fazer ou por na lista de pedidos O.o Vou fazê-lo o mais breve possível.
Re: Salvar posição do personagem na cena
Como que faço para salvar a posição do meu personagem? eu entendi como o "avião" funciona mais ou menos mas, eu não sei como posso pegar a ultima posição que meu personagem fico na cena pra quando eu voltar, ele volta nela.
willianroma- Avançado
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar posição do personagem na cena
se alguém souber algo explicando o que posso usar pra fazer isso seria muito útil
willianroma- Avançado
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar posição do personagem na cena
você pode criar um vector3
ele será responsável por guardar a rotação. Este vector3 deve estar nesse "avião", ou seja, o script com o nome "DATA" do vídeo.
Quando você for dar load para a outra cena, neste método de Load, você precisa também setar a sua posição atual para o vetor "ultimaPosic". Então, supondo que você está utilizando OnTriggerEnter para trocar de cena, ficaria algo +/- assim:
deste modo, quando você der load, a sua ultima posição será salva na variável "ultimaPosic" do script "DATA", antes de dar load.
Pronto, agora você já tem um método para salvar a posição que estava antes que carregou a cena. Agora você deve criar uma função que ao carregar esta cena novamente, faça o seu usuário receber a "ultimaPosic" no transform.position, ex:
Deu para entender +/- como funciona?
- Código:
[HideInInspector] public Vector3 ultimaPosic;
ele será responsável por guardar a rotação. Este vector3 deve estar nesse "avião", ou seja, o script com o nome "DATA" do vídeo.
Quando você for dar load para a outra cena, neste método de Load, você precisa também setar a sua posição atual para o vetor "ultimaPosic". Então, supondo que você está utilizando OnTriggerEnter para trocar de cena, ficaria algo +/- assim:
- Código:
DATA aviao;
void Start(){
aviao = GameObject.FindWithTag ("DATA");
}
void OnTriggerEnter () {
aviao.ultimaPosic = transform.position;
SceneManager.LoadScene ("novaCena");
}
deste modo, quando você der load, a sua ultima posição será salva na variável "ultimaPosic" do script "DATA", antes de dar load.
Pronto, agora você já tem um método para salvar a posição que estava antes que carregou a cena. Agora você deve criar uma função que ao carregar esta cena novamente, faça o seu usuário receber a "ultimaPosic" no transform.position, ex:
- Código:
DATA aviao;
void Start(){
aviao = GameObject.FindWithTag ("DATA");
transform.position = aviao.ultimaPosic;
}
Deu para entender +/- como funciona?
Re: Salvar posição do personagem na cena
o que seria esse "[HideInInspector]"?
willianroma- Avançado
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar posição do personagem na cena
HideInInspector faz o que o nome diz, esconde uma determinada variavel de ser acessada pelo editor, logo voce so pode alterar essa variavel por scripts.
Isso é util pra impedir que alguem coloque algum valor errado na variavel.
Isso é util pra impedir que alguem coloque algum valor errado na variavel.
Re: Salvar posição do personagem na cena
Vou fazer um tutorial sobre isto (trocar de cena e manter a posição)... Não sei se consigo gravar hoje, mas o sistema já estou elaborando hoje :D
Re: Salvar posição do personagem na cena
opa vai ajuda bastante isso, eu pensei em como fazer mas, não consigo passa pro script e.e
willianroma- Avançado
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: Salvar posição do personagem na cena
Amigo, você está tentando fazer algo como checkpoint?
Por exemplo God of War, que tem aquelas luz, e quando você passa por elas, salva teu game. Assim que você entra novamente no jogo, já aparece do lado dela?
Por exemplo God of War, que tem aquelas luz, e quando você passa por elas, salva teu game. Assim que você entra novamente no jogo, já aparece do lado dela?
George Lucas Vieira- Avançado
- PONTOS : 3393
REPUTAÇÃO : 132
Idade : 21
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :
Re: Salvar posição do personagem na cena
Não, eu só quero salvar a ultima posição na fase mesmo, um exemplo seria castlevania, quando o personagem vai pra outra sala ele se posiciona perto da porta, é basicamente isso
willianroma- Avançado
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» {duvida pesada} Sistema De Load [ salvar a ultima cena que eu "entrei"}
» Salvar cena
» Script para mudar posição do personagem
» Existe um Save sem ser por playerprefs? um jeito de salvar toda a cena?
» Como salvar cena? e fazer ela carregar com um simples menu?
» Salvar cena
» Script para mudar posição do personagem
» Existe um Save sem ser por playerprefs? um jeito de salvar toda a cena?
» Como salvar cena? e fazer ela carregar com um simples menu?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos