SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Playerprefs
Como percorrer por rampas sem deslizar o Rigdbody?
fazer inimigo se movimentar para direita e esquerda jogo de plataforma
hospedagem de site gratis (link no tópico)
Solução Unity 2019 erro Text Mesh Pro
[TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
Problema com boxes colliders
Rotação
The Stack
Instalar nova versão Unity 2019
[RESOLVIDO] Alguém conhece um programa bom e simples para criar modelos 3d?
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Flamehead MMORPG Indie
Comunicação entre scripts
[RESOLVIDO] Teletransporte pelo cenario Unity2D
Dúvida WEBGL
[RESOLVIDO] Problema com sistema de controle de volume.
Meu Jogo ta Travando - Quiz Unity 2D
[RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Quiz 2D Unity - Como esperar segundos para ir pra próxima pergunta????
Aplicativo!?!
[DUVIDA] ADS Em app WPF.NET ?
[RESOLVIDO] Renderização de Sprite renderer
[TUTORIAL] Arma tipo a do call of duty
Animação customizada com "Exit Time"
Personagem No Unity problema com colisão Como Resolver
Inimigo seguir só quando olharmos para ele.
Meu novo game
The scripts needs to derive from monobehaviour
[RESOLVIDO] Erro - animações do Mixamo na Unity
[TUTORIAL] Singleton, A melhor forma de acessar a classe!
[Asset] Repositório + Assets
Executar animação via script
COMO MOVER UM OBJETO OU PERSONAGEM
[RESOLVIDO] GameObject que não Ativa
[TUTORIAL] Compilar para Android
Travar movimentação/rotação de um child.
[TUTORIAL] Android - Sistema de controle third person shooter, Joystick + Swipe camera
[RESOLVIDO] Unity 2018.2.14f1(64bit) sem audio
Como alterar propriedades em uma clip de animação mantendo o padrão em outros clips?
GIRAR EM TORNO DE ACORDO COM AS TECLAS
[DUVIDA] Como permitir que o usuario envie uma imagem e a ajeite
Mobile Camera
Collider labirinto 2D
Efeito de "Super velocidade"
girar eixo de movimento
[RESOLVIDO] List Index error
Jogo Da Velha
Projeto de lei quer criminalizar criadores de jogos violentos ?!?!?!?
Avaliem meu APK!!!!!
[TUTORIAL] Salvar dados com playerprefs facilmente.
Conta android para desenvolvedor
[Asset] Jogo em plataforma 2D para aprendizado
Sistema de Plataforma com Rotas controlado por Touch
DIVULGAÇÃO
[RESOLVIDO] Como saber se o jogador esta vendo um certo objeto?
derrubar arvore em jogo 2d
[RESOLVIDO] Como resetar a cena em que o player estar
ESTOU COM UM PROBLEMA EM UM SCRIPT
Bool ficar verdadeira no multiplayer em script de inimigo? (Unet)
Game Mobile
[RESOLVIDO] Não consigo deixar meus áudios em 3D...
Pressionar Botão por um determinado tempo
Histórico de Input
como limitar o zoom mínimo e máximo no lean touch
Como que faço para rotacionar um objeto na posição do player como o cenario
[RESOLVIDO] Bug textura, SketchUp para Unity 3d
Unity - Excluir Ads Criado.
[RESOLVIDO] Lanterna Sumindo
Setar a posição do mouse
Medidores interativos como fazer na Unity
[RESOLVIDO] Unity - Adicionar Espaço Em Array
Pack de áudio/ efeitos sonoros gratuitos.
Game Engine
[TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
Point Light com qualidade horrivel, o que pode ser?
PC, Mobile ou ambos?
Efeito Glowing
[RESOLVIDO] box collider conflito
[RESOLVIDO] Blender - Mancha Preta
[TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
ESTOU COM UM PROBLEMA DE ANIMAÇÃO!!!
Câmera Orbital Modificada
[RESOLVIDO] Uma duvida sobre colliders 2d
Unity - Inspetor Personalizado
Software para testar AR no PC
Salvar Cores com Json
Objeto que pula
[RESOLVIDO] limite de posicionamento
Enemy grid movement
[RESOLVIDO] AJUDA COM SCRIPT
TANK DEFENDER II
[TUTORIAL] Sistema simples de Cutscenes
Sisteminha para coleta de itens
Recrutamento para desenvolvimento de um Projeto
fazer unity5 imprimir
AJUDA COM SCRIPT DE DISPARO
Um código e um agradecimento ao todo mundo.
Dúvida de shotter 2D...
Hoje à(s) 5:03 pm
Hoje à(s) 4:02 pm
Hoje à(s) 2:46 pm
Hoje à(s) 2:16 pm
Hoje à(s) 2:32 am
Ontem à(s) 9:35 pm
Ontem à(s) 8:43 pm
Ontem à(s) 8:39 pm
Ontem à(s) 8:30 pm
Ontem à(s) 8:25 pm
Ontem à(s) 1:04 pm
Ontem à(s) 3:28 am
Ontem à(s) 3:25 am
Qua Abr 17, 2019 8:26 pm
Qua Abr 17, 2019 8:16 pm
Seg Abr 15, 2019 11:27 pm
Seg Abr 15, 2019 11:24 pm
Seg Abr 15, 2019 9:53 pm
Seg Abr 15, 2019 7:15 pm
Seg Abr 15, 2019 12:29 pm
Dom Abr 14, 2019 11:26 am
Dom Abr 14, 2019 11:23 am
Dom Abr 14, 2019 1:42 am
Sab Abr 13, 2019 2:33 pm
Sab Abr 13, 2019 1:36 pm
Sex Abr 12, 2019 8:44 pm
Qui Abr 11, 2019 11:18 pm
Qui Abr 11, 2019 12:50 pm
Qua Abr 10, 2019 10:59 am
Qua Abr 10, 2019 1:01 am
Ter Abr 09, 2019 7:31 pm
Ter Abr 09, 2019 6:39 pm
Ter Abr 09, 2019 3:47 pm
Seg Abr 08, 2019 10:12 pm
Seg Abr 08, 2019 8:59 pm
Dom Abr 07, 2019 8:55 pm
Dom Abr 07, 2019 8:01 pm
Dom Abr 07, 2019 3:05 pm
Sab Abr 06, 2019 11:52 am
Sab Abr 06, 2019 12:12 am
Sex Abr 05, 2019 10:46 pm
Sex Abr 05, 2019 9:38 pm
Sex Abr 05, 2019 9:36 pm
Sex Abr 05, 2019 9:31 pm
Sex Abr 05, 2019 9:27 pm
Qui Abr 04, 2019 9:18 pm
Qui Abr 04, 2019 8:21 pm
Qui Abr 04, 2019 4:37 pm
Qui Abr 04, 2019 2:48 pm
Qui Abr 04, 2019 12:31 am
Qua Abr 03, 2019 7:09 pm
Qua Abr 03, 2019 4:37 pm
Qua Abr 03, 2019 4:32 pm
Ter Abr 02, 2019 11:18 pm
Ter Abr 02, 2019 7:32 pm
Ter Abr 02, 2019 6:18 pm
Ter Abr 02, 2019 4:50 pm
Ter Abr 02, 2019 4:19 am
Seg Abr 01, 2019 9:22 pm
Seg Abr 01, 2019 9:19 pm
Seg Abr 01, 2019 9:15 pm
Seg Abr 01, 2019 8:58 pm
Seg Abr 01, 2019 6:12 pm
Seg Abr 01, 2019 4:00 pm
Seg Abr 01, 2019 3:35 pm
Seg Abr 01, 2019 1:23 pm
Seg Abr 01, 2019 1:09 am
Dom Mar 31, 2019 6:07 pm
Dom Mar 31, 2019 11:26 am
Sab Mar 30, 2019 9:03 pm
Sab Mar 30, 2019 6:09 pm
Sab Mar 30, 2019 5:50 pm
Sab Mar 30, 2019 4:56 pm
Sab Mar 30, 2019 8:22 am
Sab Mar 30, 2019 8:21 am
Sex Mar 29, 2019 11:56 pm
Sex Mar 29, 2019 4:31 pm
Sex Mar 29, 2019 3:57 pm
Sex Mar 29, 2019 3:39 pm
Sex Mar 29, 2019 12:29 pm
Sex Mar 29, 2019 4:54 am
Sex Mar 29, 2019 4:50 am
Sex Mar 29, 2019 4:41 am
Qui Mar 28, 2019 4:26 pm
Qui Mar 28, 2019 1:39 pm
Qui Mar 28, 2019 8:05 am
Qui Mar 28, 2019 8:04 am
Ter Mar 26, 2019 11:02 pm
Ter Mar 26, 2019 5:41 pm
Ter Mar 26, 2019 2:19 pm
Ter Mar 26, 2019 12:53 pm
Seg Mar 25, 2019 11:52 pm
Seg Mar 25, 2019 11:22 pm
Seg Mar 25, 2019 9:20 pm
Seg Mar 25, 2019 1:39 am
Dom Mar 24, 2019 6:17 pm
Sab Mar 23, 2019 10:30 pm
Sab Mar 23, 2019 9:18 pm
Sab Mar 23, 2019 8:39 pm
Magnatah
LucasRangel
darkrj
Magnatah
MarcosSchultz
marlon33
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
glauco
ffabim
ffabim
Callyde Jr
mathhBR
numb123
kraulim
MarcosSchultz
Magnatah
Akuma97
Magnatah
BRGC
ffabim
diegopds
NKKF
dstaroski
MarceloYBP
guimaraf
everton0101
Master3353
Magnatah
augustobrito
NotoriousDev
DEQUISTER1994
Fernando Andrey
fabricadegame
NotoriousDev
iToddy
marciosilva
LucasRangel
wagnercaragua
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
wagnercaragua
NotoriousDev
Unidade3d5
Tegh
rejão
rafaelllsd
JohnRambo
NKKF
edvanmelo
niao
NKKF
Tegh
niao
fecirineu
fecirineu
fecirineu
BrazaTattoo
NKKF
NKKF
Chilinger
emerson vitor
BrazaTattoo
Magnatah
Guinho3p
luiz12345
Magnatah
Magnatah
Zack2
Chilinger
Chilinger
MarcosSchultz
Magnatah
michelly
eduardonog30
Magnatah
MarcosSchultz
MarcosSchultz
MarcosSchultz
mathhBR
Magnatah
Chilinger
Chilinger
luiz12345
Span
Unidade3d5
Diego Felix
wagnercaragua
AnderGames
Magnatah
ShadowWG
Encracker
Diego Felix
dstaroski
Weslley

[RESOLVIDO] Teletransporte pelo cenario Unity2D

Ir em baixo

Resolvido [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Sex Abr 05, 2019 12:24 am

Ola pessoas! To aprendendo ainda...Bom, eu to tentando fazer um trigger pra ir de um comodo pro outro com o apertar de um botão, por exemplo nessa foto ai, eu quero ir de uma porta do cenario de baixo pro de cima e vice versa, mas n to conseguindo fazer funcionar, tentei um spript com o pouco que sei ate agora mas com certeza ta faltando alguma coisa. Obrigado a quem puder me dar uma força!
Código:
 public Transform teleportTarget;
    public GameObject player;


    private void OnTriggerEnter2D(Collider2D collision)
    {
        player.transform.position = teleportTarget.transform.position;
        

    }




[RESOLVIDO] Teletransporte pelo cenario Unity2D 0d542Go

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por rafaelllsd em Sex Abr 05, 2019 1:03 am

Aqui tem 3 exemplos:
Código:
private void OnTriggerEnter2D (Collider2D collision) {
      //Por tag do objeto
      if (collision.CompareTag ("Porta")) {
         player.transform.position = teleportTarget.transform.position;
      }
      //Por nome do objeto
      if (collision.name == "Porta") {
         player.transform.position = teleportTarget.transform.position;
      }
      //Por layer do objeto
      if (collision.gameObject.layer == 0) {
         player.transform.position = teleportTarget.transform.position;
      }
   }
No script que você fez não cita qual objeto especifico ele vai colidir, ou seja, qualquer objeto que você colidir e tiver OnTrigger ativado ele vai fazer o transporte, no caso deste que passei o player só vai teletransportar se ele colidir com objeto com o nome "Porta" ou a tag "Porta" ou a layer "0"(que no caso é a layer "Default"), você que escolhe.
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3076
REPUTAÇÃO : 449
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Sex Abr 05, 2019 1:30 am

@rafaelllsd escreveu:Aqui tem 3 exemplos:
Código:
private void OnTriggerEnter2D (Collider2D collision) {
 //Por tag do objeto
 if (collision.CompareTag ("Porta")) {
 player.transform.position = teleportTarget.transform.position;
 }
 //Por nome do objeto
 if (collision.name == "Porta") {
 player.transform.position = teleportTarget.transform.position;
 }
 //Por layer do objeto
 if (collision.gameObject.layer == 0) {
 player.transform.position = teleportTarget.transform.position;
 }
 }
No script que você fez não cita qual objeto especifico ele vai colidir, ou seja, qualquer objeto que você colidir e tiver OnTrigger ativado ele vai fazer o transporte, no caso deste que passei o player só vai teletransportar se ele colidir com objeto com o nome "Porta" ou a tag "Porta" ou a layer "0"(que no caso é a layer "Default"), você que escolhe.

E tem como eu usar input.GetKey ou algo assim pra botar a letra "e" por exemplo pra poder entras nas portas?

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Sex Abr 05, 2019 2:35 am

@rafaelllsd escreveu:Aqui tem 3 exemplos:
Código:
private void OnTriggerEnter2D (Collider2D collision) {
 //Por tag do objeto
 if (collision.CompareTag ("Porta")) {
 player.transform.position = teleportTarget.transform.position;
 }
 //Por nome do objeto
 if (collision.name == "Porta") {
 player.transform.position = teleportTarget.transform.position;
 }
 //Por layer do objeto
 if (collision.gameObject.layer == 0) {
 player.transform.position = teleportTarget.transform.position;
 }
 }
No script que você fez não cita qual objeto especifico ele vai colidir, ou seja, qualquer objeto que você colidir e tiver OnTrigger ativado ele vai fazer o transporte, no caso deste que passei o player só vai teletransportar se ele colidir com objeto com o nome "Porta" ou a tag "Porta" ou a layer "0"(que no caso é a layer "Default"), você que escolhe.
To tentando fazer o TP ao apertar um botao
Código:
  private void Update()
  {
      if (player && Input.GetKeyDown("e"))
      {
          player.transform.position = teleportTarget.transform.position;
      }
  }

}

assim até que foi mas o teleporte ta acontecendo em qualquer parte do mapa e não quando eu estou na frente da porta e so ta me jogando pra porta de baixo e não me leva pra de cima

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Sex Abr 05, 2019 2:41 am

@rafaelllsd escreveu:Aqui tem 3 exemplos:
Código:
private void OnTriggerEnter2D (Collider2D collision) {
 //Por tag do objeto
 if (collision.CompareTag ("Porta")) {
 player.transform.position = teleportTarget.transform.position;
 }
 //Por nome do objeto
 if (collision.name == "Porta") {
 player.transform.position = teleportTarget.transform.position;
 }
 //Por layer do objeto
 if (collision.gameObject.layer == 0) {
 player.transform.position = teleportTarget.transform.position;
 }
 }
No script que você fez não cita qual objeto especifico ele vai colidir, ou seja, qualquer objeto que você colidir e tiver OnTrigger ativado ele vai fazer o transporte, no caso deste que passei o player só vai teletransportar se ele colidir com objeto com o nome "Porta" ou a tag "Porta" ou a layer "0"(que no caso é a layer "Default"), você que escolhe.




gravei, olha ai com ta

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por rafaelllsd em Sex Abr 05, 2019 5:24 am

Eu sugiro você verificar a distância entre o player e a porta, e caso a distância for menor que x e apertar "E", ele teleporta:
Verificar distância: https://docs.unity3d.com/ScriptReference/Vector3.Distance.html
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3076
REPUTAÇÃO : 449
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Ter Abr 09, 2019 4:48 pm

@rafaelllsd escreveu:Eu sugiro você verificar a distância entre o player e a porta, e caso a distância for menor que x e apertar "E", ele teleporta:
Verificar distância: https://docs.unity3d.com/ScriptReference/Vector3.Distance.html
Código:
void Start()
    {
        canTeleport = false;
        player = GameObject.FindWithTag("Player");
    }
    void Update()
    {
        if (Input.GetKeyDown("e") && canTeleport == true)
           
        {
            dist = Vector3.Distance(player.transform.position, b: teleportTarget.transform.position);
            canTeleport = false;
        }
    }
    void OnTriggerEnter()
    {
        canTeleport = true;
    }
    void OnTriggerExit()
    {
        canTeleport = false;
    }


Bom eu tentei isso ai mas nada acontece ainda, eu não entendi o que esta faltando

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Ter Abr 09, 2019 5:55 pm

@mathhBR escreveu:
@rafaelllsd escreveu:Eu sugiro você verificar a distância entre o player e a porta, e caso a distância for menor que x e apertar "E", ele teleporta:
Verificar distância: https://docs.unity3d.com/ScriptReference/Vector3.Distance.html
Código:
void Start()
    {
        canTeleport = false;
        player = GameObject.FindWithTag("Player");
    }
    void Update()
    {
        if (Input.GetKeyDown("e") && canTeleport == true)
            
        {
            dist = Vector3.Distance(player.transform.position, b: teleportTarget.transform.position);
            canTeleport = false;
        }
    }
    void OnTriggerEnter()
    {
        canTeleport = true;
    }
    void OnTriggerExit()
    {
        canTeleport = false;
    }


Bom eu tentei isso ai mas nada acontece ainda, eu não entendi o que esta faltando
Ahh eu notei que o botão so funciona quando eu uso o void Update, como eu faço pra usar o void OnTriggerEnter2D(Collider2D collision) pra reconhecer a colisao com o collider e usar o update pro botão "e" pra teleportar só ao acionar?

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Ter Abr 09, 2019 7:18 pm

@rafaelllsd escreveu:Eu sugiro você verificar a distância entre o player e a porta, e caso a distância for menor que x e apertar "E", ele teleporta:
Verificar distância: https://docs.unity3d.com/ScriptReference/Vector3.Distance.html
Código:
void Start()
    {
        canTeleport = false;
        player = GameObject.FindWithTag("Player");
    }
    void Update()
    {
        if (Input.GetKeyDown("e") && canTeleport == true)
            
        {
            dist = Vector3.Distance(player.transform.position, b: teleportTarget.transform.position);
            canTeleport = false;
        }
    }
    void OnTriggerEnter()
    {
        canTeleport = true;
    }
    void OnTriggerExit()
    {
        canTeleport = false;
    }
Código:
 public Transform teleportTarget;
    private GameObject[] teleportTarget_;
    private GameObject player;
    public float distance;

    private void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player");
        teleportTarget_ = GameObject.FindGameObjectsWithTag("Doors");
    }

    void Update()
    {

        distance = Vector3.Distance(player.transform.position, teleportTarget_.transform.position);

        if (distance < 0.6823619 && Input.GetKeyDown("e"))
           
        {
            player.transform.position = teleportTarget.transform.position;

        } 
    }

Consegui algo finalmente, mas o problema agora é fazer o script checar multiplas portas e ver a distancia do player ate elas porem eu não consigo fazer o transform de GameObject[]. como eu poderia fzer isso?

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Ter Abr 09, 2019 7:20 pm

No caso é o transform da checagem de distancia aqui:  distance = Vector3.Distance(player.transform.position, /////teleportTarget_.transform.position);////


por serem varios objetos ele não aceita

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por MarcosSchultz em Qua Abr 10, 2019 3:59 am

@mathhBR escreveu:No caso é o transform da checagem de distancia aqui:  distance = Vector3.Distance(player.transform.position, /////teleportTarget_.transform.position);////


por serem varios objetos ele não aceita

Basta usar um for para fazer a checagem dos elementos da array, mas tipo, geralmente cada código vai em uma porta... Você quer fazer um gerenciador geral para todas as portas?
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61659
REPUTAÇÃO : 2206
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D Aad8pUi

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Dom Abr 14, 2019 6:21 pm

@MarcosSchultz escreveu:
@mathhBR escreveu:No caso é o transform da checagem de distancia aqui:  distance = Vector3.Distance(player.transform.position, /////teleportTarget_.transform.position);////


por serem varios objetos ele não aceita

Basta usar um for para fazer a checagem dos elementos da array, mas tipo, geralmente cada código vai em uma porta... Você quer fazer um gerenciador geral para todas as portas?
Bom eu tava querendo que ele verificasse a distancia do player pra cada porta e quando estivesse no alcance e apertar E ele entra e teleporta pro cenario em cima. Eu to tentando verificar a colisão da porta mas não ta funcionando.
Código:
 public float maxSpeed;
    public float jumpForce;
    public Transform groundChecker;
    private bool grounded = true;
    private bool jumping;
    private Rigidbody2D rb2d;
    private Animator anim;
    private SpriteRenderer sprite;
    // public Transform teleportTarget;
    public GameObject currentDoor;
    private GameObject player;
    void Awake ()
    {
        rb2d = GetComponent<Rigidbody2D> ();
        sprite = GetComponent<SpriteRenderer> ();
        anim = GetComponent<Animator> ();
     
     
    }



    // Use this for initialization
    void Start () {
        player = GameObject.FindGameObjectWithTag("Player");
       

   }
   
   // Update is called once per frame
   void Update () {

        grounded = Physics2D.OverlapCircle(groundChecker.position, 0.02f);

        if (Input.GetKeyDown(KeyCode.Space) && grounded)
        {
           
            jumping = true;
        }

        if (Input.GetKeyDown("e"))
        {
            // If we have a door saved, teleport to it
            if (currentDoor)
            {
                // NOTE: You can still have checks for distance here if you wish!
                player.transform.position = currentDoor.transform.position;
            }
        }


    }


    void OnCollisionEnter2D(Collision2D coll)
    {
        if (coll.gameObject.tag == "ground")
        {
            grounded = true;
        }

            // Check if this collider gameobject is a door using the Doors tag
            if (coll.gameObject.tag == ("Doors"))
            {
                // This is a door, make this our current door
                currentDoor = coll.gameObject;
            }
       
    }


    void OnTriggerExit2D(Collider2D other)
    {
        // Check if the gameobject we're exiting a collision with is the current door
        if (other.tag.Equals("Doors") && other.gameObject.Equals(currentDoor))
        {
            currentDoor = null;
        }

    }



        void FixedUpdate(){

        float move = Input.GetAxis("Horizontal");

        anim.SetFloat("Speed", Mathf.Abs(move));

        rb2d.velocity = new Vector2(move * maxSpeed, rb2d.velocity.y);

        if((move> 0f && sprite.flipX) || (move < 0f && !sprite.flipX))
        {
          Flip();
        }

       


        if (jumping)
        {
            rb2d.AddForce(new Vector2(1f, jumpForce));
            jumping = false;
        }
        anim.SetBool("jumpFall", rb2d.velocity.y != 0.1f && !grounded);
    }

    void Flip()
    {
        sprite.flipX = !sprite.flipX;
    }

}

e esse é na porta

Código:
public class Doors : MonoBehaviour
{
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag.Equals("Player"))
        {
            other.gameObject.GetComponent <Player> ().currentDoor = gameObject;
        }
    }
}

E olha aqui um video de alguns segundo do que ta acontecendo


mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Dom Abr 14, 2019 6:25 pm

@MarcosSchultz escreveu:
@mathhBR escreveu:No caso é o transform da checagem de distancia aqui:  distance = Vector3.Distance(player.transform.position, /////teleportTarget_.transform.position);////


por serem varios objetos ele não aceita

Basta usar um for para fazer a checagem dos elementos da array, mas tipo, geralmente cada código vai em uma porta... Você quer fazer um gerenciador geral para todas as portas?
Esse de verificar a distancia não parece que vai funcionar

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por rafaelllsd em Seg Abr 15, 2019 1:04 am

Aqui esta um exemplo para teleportar por distância:
Código:
public class Teleport : MonoBehaviour {

 public Transform target; //Outra porta
 private Transform player; //Jogador
 public KeyCode key; //Tecla que aperta para teleportar
 public float currentDistance; //Distancia entre a porta e o jogador
 public float maxDistance; //Distancia maxima para teleportar

 void Start () {
 player = GameObject.FindWithTag ("Player").transform; //Pega o jogador e seta automaticamente na variavel player
 }
 

 void Update () {
 if (target != null) { //Verifica se a outra porta esta linkado
 currentDistance = Vector2.Distance (transform.position, player.position); //Pega a distância entre a porta e o jogador
 if (currentDistance <= maxDistance) { //Verifica se a distância é menor ou igual a distância maxima.
 if (Input.GetKeyDown (key)) { //Verifica se o jogador apertou a tecla de teleport
 player.position = target.position; //Jogador é teleportado para a outra porta.
 }
 }
 }
 }
}

Seu player só precisa ter a tag "Player", ou se preferir deixar a variável "player" publica e setar manualmente...
rafaelllsd
rafaelllsd
ProgramadorMaster

Masculino PONTOS : 3076
REPUTAÇÃO : 449
Idade : 18
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, HTML5.

Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D Aad8pUi

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Teletransporte pelo cenario Unity2D

Mensagem por mathhBR em Qua Abr 17, 2019 8:16 pm

@rafaelllsd escreveu:Aqui esta um exemplo para teleportar por distância:
Código:
public class Teleport : MonoBehaviour {

 public Transform target; //Outra porta
 private Transform player; //Jogador
 public KeyCode key; //Tecla que aperta para teleportar
 public float currentDistance; //Distancia entre a porta e o jogador
 public float maxDistance; //Distancia maxima para teleportar

 void Start () {
 player = GameObject.FindWithTag ("Player").transform; //Pega o jogador e seta automaticamente na variavel player
 }
 

 void Update () {
 if (target != null) { //Verifica se a outra porta esta linkado
 currentDistance = Vector2.Distance (transform.position, player.position); //Pega a distância entre a porta e o jogador
 if (currentDistance <= maxDistance) { //Verifica se a distância é menor ou igual a distância maxima.
 if (Input.GetKeyDown (key)) { //Verifica se o jogador apertou a tecla de teleport
 player.position = target.position; //Jogador é teleportado para a outra porta.
 }
 }
 }
 }
}

Seu player só precisa ter a tag "Player", ou se preferir deixar a variável "player" publica e setar manualmente...
FINALMENTE CONSEGUI RESOLVER E FOI PELO METODO DA COLISÃO MESMO, OBRIGADO A QUEM TENTOU ME AJUDAR

AQUI COMO FICOU O SCRIPT PRA PORTA

Código:
public class Doors : MonoBehaviour
{
    public Transform teleportTarget;
    public GameObject currentDoor;
    public GameObject player;

    private void Start()
    {
       
    }


    // Check for collisions
    void OnTriggerEnter2D(Collider2D other)
    {
        // Check if this collider gameobject is a door using the Doors tag
        if (other.tag.Equals("Player"))
        {
            // This is a door, make this our current door
            currentDoor = other.gameObject;
        }

    }

    void Update()
    {
     
            if (currentDoor)
        {
              if (Input.GetKeyDown("e"))

              {
                player.transform.localPosition = teleportTarget.transform.position;
              }

        }
    }

       


    void OnTriggerExit2D(Collider2D other)
    {
        // Check if the gameobject we're exiting a collision with is the current door
        if (other.tag.Equals("Player") && other.gameObject.Equals(currentDoor))
        {
            currentDoor = null;
        }

    }


   
 }

mathhBR
Membro
Membro

PONTOS : 72
REPUTAÇÃO : 0
Respeito as regras : [RESOLVIDO] Teletransporte pelo cenario Unity2D WvDYdlf

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum