[RESOLVIDO] Teleporte do player com outro objeto!
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Teleporte do player com outro objeto!
Ola!, faz um tempo que não crio um tópico aqui.
A questão é o seguinte, tenho uma caixa que se teleporta para varias localizações, quero fazer é que quando o player esteja dentro dessa caixa, ele seja levado junto com ela, mas de modo que não precise redefinir a posição dele.
Alguém tem alguma ideia sobre?
Um jeito diferente, ou algo pra complementar esse?
ps: A caixa é um pouco grande então ele pode se movimentar por ela, seria interessante esse teleporte não alterar a posição dele dentro da caixa
A questão é o seguinte, tenho uma caixa que se teleporta para varias localizações, quero fazer é que quando o player esteja dentro dessa caixa, ele seja levado junto com ela, mas de modo que não precise redefinir a posição dele.
Alguém tem alguma ideia sobre?
Um jeito diferente, ou algo pra complementar esse?
ps: A caixa é um pouco grande então ele pode se movimentar por ela, seria interessante esse teleporte não alterar a posição dele dentro da caixa
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
Perguntas:
O teleporte é para outra scene ou na mesma?
é... só 1 perguntas msm =]
O teleporte é para outra scene ou na mesma?
é... só 1 perguntas msm =]
Nalfam- MembroAvançado
- PONTOS : 2436
REPUTAÇÃO : 32
Áreas de atuação : Unity
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
Só uma ideia mas pode funcionar :
Crie um GameObject vazio e coloque como filha da caixa que teleporta.
Agora vamos ao script .
Primeiro :
Este objeto precisa ter um script que faça ele sempre receber a posição do player, pode ser um script separado que vai nele, pode ser por referencia.
Eu não sei como essa caixa teleporta mas no momento que ela teleportar deve acontecer o seguinte (Tipo na hora que ele apertar o botão "Teleportar"):
O Objeto para de receber a posição do player, se o player tiver dentro da caixa ele recebe a posição do GameObject, se ele tiver fora a vida segue e o OBJ volta a receber a posição do player.
Script :
O OBJ de Referencia sempre segue o player.
Quando a caixa vai ser teleportada ele deixa de seguir.
Como o OBJ esta filiado a caixa ele tera as posições de como se o player estivesse dentro da caixa, então mesmo que a caixa mude de posição quando vc teleportar ele vai pegar X posição em relação A CAIXA.
Entenda que se o OBJ não esta filiado a caixa ele pegaria a posição dele no mapa e assim ele teria erros como vc disse, de o player teleportar sempre no centro da caixa e td mais.
Se o player tiver dentro da caixa ele é levado junto e logo em seguida o OBJ volta a segui-lo.
Espero que tenha entendido e que funcione, estou sem o unity aqui pra testar :/
Crie um GameObject vazio e coloque como filha da caixa que teleporta.
Agora vamos ao script .
Primeiro :
Este objeto precisa ter um script que faça ele sempre receber a posição do player, pode ser um script separado que vai nele, pode ser por referencia.
Eu não sei como essa caixa teleporta mas no momento que ela teleportar deve acontecer o seguinte (Tipo na hora que ele apertar o botão "Teleportar"):
O Objeto para de receber a posição do player, se o player tiver dentro da caixa ele recebe a posição do GameObject, se ele tiver fora a vida segue e o OBJ volta a receber a posição do player.
Script :
- Código:
if(Seguir == true )
{
ObjDeReferencia.transform.position = Player.transform.position;
}
if(Teleportar == true)
{
Seguir = false;
if(Player estiver dentro da caixa)
{
Player.transform.position = ObjDeReferencia.transform.position;
}
Seguir = true;
Teleportar = false;
}
O OBJ de Referencia sempre segue o player.
Quando a caixa vai ser teleportada ele deixa de seguir.
Como o OBJ esta filiado a caixa ele tera as posições de como se o player estivesse dentro da caixa, então mesmo que a caixa mude de posição quando vc teleportar ele vai pegar X posição em relação A CAIXA.
Entenda que se o OBJ não esta filiado a caixa ele pegaria a posição dele no mapa e assim ele teria erros como vc disse, de o player teleportar sempre no centro da caixa e td mais.
Se o player tiver dentro da caixa ele é levado junto e logo em seguida o OBJ volta a segui-lo.
Espero que tenha entendido e que funcione, estou sem o unity aqui pra testar :/
lesgoy- Mestre
- PONTOS : 3489
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
É na mesma cenaNalfam escreveu:Perguntas:
O teleporte é para outra scene ou na mesma?
é... só 1 perguntas msm =]
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
lesgoy escreveu:Só uma ideia mas pode funcionar :
Crie um GameObject vazio e coloque como filha da caixa que teleporta.
Agora vamos ao script .
Primeiro :
Este objeto precisa ter um script que faça ele sempre receber a posição do player, pode ser um script separado que vai nele, pode ser por referencia.
Eu não sei como essa caixa teleporta mas no momento que ela teleportar deve acontecer o seguinte (Tipo na hora que ele apertar o botão "Teleportar"):
O Objeto para de receber a posição do player, se o player tiver dentro da caixa ele recebe a posição do GameObject, se ele tiver fora a vida segue e o OBJ volta a receber a posição do player.
Script :É claro que teria que mudar os comandos pq ai eu coloquei somente o conceito, mas agora eu vou explicar a minha ideia pra vc conseguir adaptar.
- Código:
if(Seguir == true )
{
ObjDeReferencia.transform.position = Player.transform.position;
}
if(Teleportar == true)
{
Seguir = false;
if(Player estiver dentro da caixa)
{
Player.transform.position = ObjDeReferencia.transform.position;
}
Seguir = true;
Teleportar = false;
}
O OBJ de Referencia sempre segue o player.
Quando a caixa vai ser teleportada ele deixa de seguir.
Como o OBJ esta filiado a caixa ele tera as posições de como se o player estivesse dentro da caixa, então mesmo que a caixa mude de posição quando vc teleportar ele vai pegar X posição em relação A CAIXA.
Entenda que se o OBJ não esta filiado a caixa ele pegaria a posição dele no mapa e assim ele teria erros como vc disse, de o player teleportar sempre no centro da caixa e td mais.
Se o player tiver dentro da caixa ele é levado junto e logo em seguida o OBJ volta a segui-lo.
Espero que tenha entendido e que funcione, estou sem o unity aqui pra testar :/
Estou usando o simples transform = transform, mas entendi como isso funcionaria, vou fazer um teste depois, obrigado
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
Aparentemente está funcionando, mais quando ele vai definir a posição do player, que por acaso estou usando o padrão do unity. De uma forma rápida o player vai para o ponto na caixa mas imediatamente ele volta pra posição anterior
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
Só para gente saber se o problema é no nosso script ou algo no script da unity, crie um cubo e faça o teste nele.
lesgoy- Mestre
- PONTOS : 3489
REPUTAÇÃO : 49
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
NyanHeavyBR escreveu:Ola!, faz um tempo que não crio um tópico aqui.
A questão é o seguinte, tenho uma caixa que se teleporta para varias localizações, quero fazer é que quando o player esteja dentro dessa caixa, ele seja levado junto com ela, mas de modo que não precise redefinir a posição dele.
Alguém tem alguma ideia sobre?
Um jeito diferente, ou algo pra complementar esse?
ps: A caixa é um pouco grande então ele pode se movimentar por ela, seria interessante esse teleporte não alterar a posição dele dentro da caixa
A caixa sendo grande, e vc quer que ele permaneça na posição em que está dentro da caixa após o teleporte...
Que tal defini-lo como filho da caixa antes do teleporte, e depois seta ele fora da caixa?
Parece que já sabe fazer o teleporte, o comando que irá defini-lo como filho, antes do tele é:
player.transform.SetParent(caixa.transform);
após o teleporte, pra tirar o player é:
player.transform.SetParent(null);
Ou se ele tiver que ser filho de algum objeto, vc coloca no parênteses esse tal objeto.
Nalfam- MembroAvançado
- PONTOS : 2436
REPUTAÇÃO : 32
Áreas de atuação : Unity
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
Eu acabei fazendo diferente, até mesmo para descomplicar no futuro com o multiplayer.
Agora em vez da caixa ir ate os lugares, os lugares vão ate a caixa hehe, aqui tem um video devlog que vocês podem entender toda a situação:
Agora em vez da caixa ir ate os lugares, os lugares vão ate a caixa hehe, aqui tem um video devlog que vocês podem entender toda a situação:
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Re: [RESOLVIDO] Teleporte do player com outro objeto!
Obrigado aos que tentaram me ajudar :v
NyanHeavyBR- MembroAvançado
- PONTOS : 3305
REPUTAÇÃO : 32
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como fazer um objeto 2D rotacionar em direção a outro objeto
» [RESOLVIDO] como fazer um objeto trocar de cor ao colidir com outro objeto
» [RESOLVIDO] Copiar a rotação de um Objeto para outro.
» [RESOLVIDO] Como fazer um objeto ter a mesma rotação de outro
» [RESOLVIDO] Como movimentar um objeto de um lado para o outro
» [RESOLVIDO] como fazer um objeto trocar de cor ao colidir com outro objeto
» [RESOLVIDO] Copiar a rotação de um Objeto para outro.
» [RESOLVIDO] Como fazer um objeto ter a mesma rotação de outro
» [RESOLVIDO] Como movimentar um objeto de um lado para o outro
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos