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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Recrutamento de equipe
Dash2D
[TUTORIAL] Unity 5 - Como utilizar o Animator
Procuro membros para minha Equipe (Programadores, designers, etc)
Movimentação de inimigo
É assim que se começa um "novo mundo" na era medieval? kkjk
Criar Simulador de Sinuca
Tempo Minutos e Segundos Transformar em Volta mais Rapida
[TUTORIAL] Unity 5.5 - Splash Screen
R7 - GOOH (resident evil 7)
InputField/String Com formato para data XX/XX/XXXX
Estou com varias duvidas sobre o inputfield do ui canvas
(Dúvida) Setar ultima string de uma array
[Ajuda] Unity 5.5.0 não abre
Coroutines Loop
[____TÓPICO LIVRE____] FALE O QUE QUISER
Destruindo objeto em uma outra cena
modo desenvolvedor xbox one?
como usar o Lookat com o addforce do rigidibody?
Cryengine 3?
Transferência de valores.
Teste de usuário para um jogo
Ajuda com variaveis multiplas?
Animação da arma (Mirar/Recarregar)
script
[TUTORIAL] Barra de VIDA / HP contínua
Tornar objeto filho por script
Time.timeScale continua em 0
Animacao2D
Duvida Animation Play não faz nada
Unity 5 Bugado
Escolher que resoluções jogo vai ter
Baixar Documentaçao Unity 3D?
COMO DESATIVAR O SCRIPT "FisrtPersonController" DO PLAYER ATRAVÉS DE OUTRO SCRIPT
Ajuda Movimento2D
AJUDA COM BAKE EM LUZES
Tem como editar o inspector?
[TUTORIAL] Como Abrir e Fechar Gavetas - Unity 5
Números aleatorios
[TUTORIAL]Save Load Criptografado (Atualizado 07/12/16)
Trocar de true pra false em uma animação bool
[TUTORIAL] Alterarando o ícone do Executável do Jogo
Baixar Unity ?
Unity 5 + um pouco de conhecimento ou Skyrim?
Procuro vagas em equipes [Programador]
Help minha void oncollisionenter nao funciona e nao consio encontrar o do por que :/
Converter um Gameobject para uma byte array (byte[])
Asset de FPS - AU FPS Kit [unity 5] v1.5
[TUTORIAL] Dicas de otimização
Preciso saber o ponto medio entre dois Transform
[TUTORIAL] Banco de dados || MySQL
Unity 5.5 BETA (Mudanças)
[TUTORIAL] Serialização - JSON
[TUTORIAL] Melhorar a estabilidade dos veículos com Wheel Collider
[TUTORIAL]Como colocar videos ou intros simples na unity free
[TUTORIAL] Deformar o terreno
[TUTORIAL] Scripts Básicos para Iniciantes
Qual asset comprar?
Ideias para level design 3D
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Alien Planet - Atmospheric scattering test
Integração PHP e Unity
Ideia Inovadora
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Pra que serve o [SerializeField] e por que usar ele?
Forma uma equipe
Feixe de luz - melhor forma de fazer
erro sinistro
Duvida sobre o Peso do jogo?
Alquem tem alguma ideia de como fazer o Player tipo a cabeça olhar para o seu inimigo?
Como mudar rotacao de um objeto em relacao a posicao do outro objeto
Gostaria da opinião de vocês sobre o beta da Unity
Script
[TUTORIAL] Sistema de Escada Estilo FPS
Guitar The Legends of Brazil
Hoje à(s) 10:51 am
Hoje à(s) 10:20 am
Hoje à(s) 10:13 am
Hoje à(s) 9:42 am
Hoje à(s) 9:16 am
Hoje à(s) 9:15 am
Hoje à(s) 8:13 am
Ontem à(s) 11:02 pm
Ontem à(s) 10:41 pm
Ontem à(s) 10:37 pm
Ontem à(s) 7:40 pm
Ontem à(s) 7:39 pm
Ontem à(s) 6:44 pm
Ontem à(s) 6:26 pm
Ontem à(s) 5:41 pm
Ontem à(s) 4:19 pm
Ontem à(s) 11:42 am
Ontem à(s) 11:15 am
Ontem à(s) 8:45 am
Ontem à(s) 6:17 am
Qua Dez 07, 2016 11:58 pm
Qua Dez 07, 2016 11:55 pm
Qua Dez 07, 2016 10:57 pm
Qua Dez 07, 2016 10:22 pm
Qua Dez 07, 2016 10:03 pm
Qua Dez 07, 2016 8:51 pm
Qua Dez 07, 2016 8:47 pm
Qua Dez 07, 2016 8:45 pm
Qua Dez 07, 2016 8:42 pm
Qua Dez 07, 2016 8:36 pm
Qua Dez 07, 2016 8:32 pm
Qua Dez 07, 2016 8:30 pm
Qua Dez 07, 2016 8:22 pm
Qua Dez 07, 2016 7:47 pm
Qua Dez 07, 2016 5:54 pm
Qua Dez 07, 2016 5:50 pm
Qua Dez 07, 2016 4:31 pm
Qua Dez 07, 2016 4:16 pm
Qua Dez 07, 2016 3:40 pm
Qua Dez 07, 2016 3:26 pm
Qua Dez 07, 2016 3:01 pm
Qua Dez 07, 2016 2:31 pm
Qua Dez 07, 2016 10:42 am
Ter Dez 06, 2016 10:46 pm
Ter Dez 06, 2016 10:30 pm
Ter Dez 06, 2016 6:02 pm
Ter Dez 06, 2016 5:01 pm
Ter Dez 06, 2016 3:31 am
Seg Dez 05, 2016 11:52 pm
Seg Dez 05, 2016 6:52 pm
Seg Dez 05, 2016 6:48 pm
Seg Dez 05, 2016 6:32 pm
Seg Dez 05, 2016 6:17 pm
Seg Dez 05, 2016 6:15 pm
Seg Dez 05, 2016 4:08 pm
Seg Dez 05, 2016 3:10 pm
Seg Dez 05, 2016 1:36 pm
Seg Dez 05, 2016 12:35 pm
Dom Dez 04, 2016 10:52 pm
Dom Dez 04, 2016 6:37 pm
Dom Dez 04, 2016 6:33 pm
Dom Dez 04, 2016 5:46 am
Dom Dez 04, 2016 3:34 am
Sab Dez 03, 2016 11:36 pm
Sab Dez 03, 2016 11:31 pm
Sab Dez 03, 2016 1:32 pm
Sab Dez 03, 2016 10:53 am
Sab Dez 03, 2016 1:25 am
Sab Dez 03, 2016 1:11 am
Sab Dez 03, 2016 1:08 am
Sex Dez 02, 2016 11:20 pm
Sex Dez 02, 2016 11:15 pm
Sex Dez 02, 2016 11:10 pm
Sex Dez 02, 2016 11:08 pm
Sex Dez 02, 2016 10:58 pm
Locodapraça
Thiagofogaca217
debBoy
AndyShow
demetriosfernands
Dom3000
souteramoto
AndyShow
MarcosSchultz
foxtenn
leandroinforware
leandroinforware
hetrodo_gamer
hetrodo_gamer
hetrodo_gamer
Manawydan
kleytonpb
AndyShow
Dom3000
Callyde Jr
Matrirxp
zBanidor
MarcosSchultz
zBanidor
artplayer
MarcosSchultz
DoctorGame15
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
hetrodo_gamer
Marlonwanger
diegopds
Dom3000
joabr
natanael.olimpio
hetrodo_gamer
hetrodo_gamer
Callyde Jr
dstaroski
Dom3000
Creat Games
Dom3000
hetrodo_gamer
dimmuo
Dom3000
Dom3000
artplayer
weslleyFx
RenanMSV
weslleyFx
Deiverson
John Rambo
Deiverson
Madness
Madness
weslleyFx
weslleyFx
artplayer
Madness
weslleyFx
weslleyFx
mafipt
dimmuo
Dom3000
Dom3000
Dom3000
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz

Como Fasso Isso ?????

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA Como Fasso Isso ?????

Mensagem por mateus202 em Sab Jul 09, 2016 11:33 am


  • Como Fasso Um Platforma ou Objeto Fica indo Pro lado e pro Outro ?  tipo  <----=----> Mesma Coisa Pra cima e Pra baixo ???? 

mateus202
Iniciante
Iniciante

PONTOS : 209
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por John Rambo em Sab Jul 09, 2016 11:57 am

Animações brother

John Rambo
Moderador

Masculino PONTOS : 1293
REPUTAÇÃO : 226
Idade : 17
Áreas de atuação :
Unity;
Programação;
Modelagem;
Criação de cenários;
Sonorização;

Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Guilherme_cj852 em Sab Jul 09, 2016 12:22 pm

Você pode usar animação ou criar um script para fazer isso, mas recomendo usar animação mesmo, como o John Rambo disse.

Guilherme_cj852
ProgramadorMaster

Masculino PONTOS : 913
REPUTAÇÃO : 113
Idade : 15
Áreas de atuação : Programador C#
Designer
Iniciante em PHP
Respeito as regras :

Ver perfil do usuário http://ugames-studio.weebly.com/

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por geeksou em Sab Jul 09, 2016 12:34 pm

Existem varias formas de fazer, animação é uma delas, mas não gosto muito pois costumo usar em varias coisas, então prefiro via script pra ficar mais reutilizável e mais fácil de modificar. Um script pra isso pode ser feito de varias formas, no meu jogo fiz assim: um GameObject pai com o script, e dentro dele 3 filhos, o objeto que vai ir de um lado para o outro, e 2 objetos vazios que serão o ponto A e o ponto B do deslocamento. 
No final tudo fica assim: 



Aqui o Script

Código:
using UnityEngine;
using System.Collections;

public class MovimentarEntre2Pontos : MonoBehaviour
{

    public enum TipoMovimento
    {
        HORIZONTAL,
        VERTICAL
    }

    

    private GameObject mesh;

    
    public bool podeMovimentar = false;
    public bool virarMesh;
    public float velocidadeMovimentacao;
    public TipoMovimento tipoMovimento;
    private int sentido = 1;

    private float scaleXIndo;
    private float scaleXVoltando;

  
    private GameObject pontoA;
    private GameObject pontoB;

    void Start()
    {
        pontoA = transform.FindChild("A").gameObject;
        pontoB = transform.FindChild("B").gameObject;
        mesh = transform.FindChild("mesh").gameObject;

        scaleXIndo = mesh.transform.localScale.x;
        scaleXVoltando = -mesh.transform.localScale.x;

        if (podeMovimentar)
        {
            // Inicia no ponto A
            if (tipoMovimento == TipoMovimento.HORIZONTAL)
            {
                if (mesh.transform.position.x != pontoA.transform.position.x)
                {
                    mesh.transform.position = new Vector2(pontoA.transform.position.x, mesh.transform.position.y);
                }
            }

            // Inicia no ponto A
            if (tipoMovimento == TipoMovimento.VERTICAL)
            {
                if (mesh.transform.position.y != pontoA.transform.position.y)
                {
                    mesh.transform.position = new Vector2(mesh.transform.position.x, pontoA.transform.position.y);
                }
            }
        }
    }

    void Update()
    {

        if (podeMovimentar)
        {
            Movimentar();
        }
    }

    private void Movimentar()
    {

        float pontoAx = pontoA.transform.position.x;
        float pontoAy = pontoA.transform.position.y;

        float pontoBx = pontoB.transform.position.x;
        float pontoBy = pontoB.transform.position.y;


        if (tipoMovimento == TipoMovimento.HORIZONTAL)
        {
            if (virarMesh)
            {
                if(sentido == -1)
                    mesh.transform.localScale = new Vector2(scaleXVoltando, mesh.transform.localScale.y);
                else
                    mesh.transform.localScale = new Vector2(scaleXIndo, mesh.transform.localScale.y);
            }
                

            if (pontoA.transform.position.x < pontoB.transform.position.x)
            {


                if (mesh.transform.position.x >= pontoB.transform.position.x && sentido == 1)
                {
                    sentido = -1;
                }

                if (mesh.transform.position.x <= pontoA.transform.position.x && sentido == -1)
                {
                    sentido = 1;
                }

                mesh.GetComponent<Rigidbody2D>().velocity = Vector2.right * (velocidadeMovimentacao * sentido);
                
            }

            else
            {
                if (mesh.transform.position.x >= pontoA.transform.position.x && sentido == 1)
                {
                    sentido = -1;
                    if (virarMesh)
                        mesh.transform.localScale = new Vector2(-mesh.transform.localScale.x, mesh.transform.localScale.y);

                }

                if (mesh.transform.position.x <= pontoB.transform.position.x && sentido == -1)
                {
                    sentido = 1;
                    if (virarMesh)
                        mesh.transform.localScale = new Vector2(mesh.transform.localScale.x, mesh.transform.localScale.y);
                }

                mesh.GetComponent<Rigidbody2D>().velocity = Vector2.right * (velocidadeMovimentacao * sentido);
            }
        }

        if (tipoMovimento == TipoMovimento.VERTICAL)
        {

            if (pontoA.transform.position.y < pontoB.transform.position.y)
            {
                if (mesh.transform.position.y >= pontoB.transform.position.y && sentido == 1)
                {
                    sentido = -1;
                }

                if (mesh.transform.position.y <= pontoA.transform.position.y && sentido == -1)
                {
                    sentido = 1;
                }

                mesh.GetComponent<Rigidbody2D>().velocity = Vector2.up * (velocidadeMovimentacao * sentido);
            }

            else
            {
                if (mesh.transform.position.y >= pontoA.transform.position.y && sentido == 1)
                {
                    sentido = -1;
                }

                if (mesh.transform.position.y <= pontoB.transform.position.y && sentido == -1)
                {
                    sentido = 1;
                }

                mesh.GetComponent<Rigidbody2D>().velocity = Vector2.up * (velocidadeMovimentacao * sentido);
            }
        }


    }
}

Lembrando que os 3 objetos precisam ter os seguintes nomes: "mesh" (objeto que se move), "A" (ponto inicial do movimento) e "B" (ponto final do movimento).
Ou caso queira linkar você mesmo os objetos, sem necessariamente usar esses nomes, você pode tornar as variáveis "pontoA", "pontoB" e "mesh" como publicas, remover esse trecho de código
Código:
        pontoA = transform.FindChild("A").gameObject;
        pontoB = transform.FindChild("B").gameObject;
        mesh = transform.FindChild("mesh").gameObject;

e colocar os objetos direto pelo inspector, fica a seu critério.

geeksou
Designer

Masculino PONTOS : 931
REPUTAÇÃO : 43
Idade : 22
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Prodigio em Sab Jul 09, 2016 1:14 pm

Código:
using UnityEngine;
using System.Collections;

public class Objeto_Ir_E_Voltar : MonoBehaviour {
 public float valor;
 


 void Update () {
 valor = Mathf.PingPong (Time.time * 2.0f, 8); //O time e multiplicado por 2.0f para aumentar a velocidade do objeto (* 2.0f) e o 8 e ate aonde o objeto vai, voce pode alterar isso tranquilamente
 transform.position = new Vector3 (valor,0,0); //Altere o valor para o eixo que voce quer que o objeto se mova (X,Y,Z) no caso esta no eixo X
 
 }
}


Testei esse script e aqui deu certo, fiz com base no vídeo do Marcos Schultz 


Última edição por Prodigio em Sab Jul 09, 2016 1:17 pm, editado 1 vez(es) (Razão : Alterar bug's.)

Prodigio
Iniciante
Iniciante

PONTOS : 163
REPUTAÇÃO : 3
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Marc7 em Qui Jul 14, 2016 1:15 am

Valeu Prodigio pela indicação, excelente video, muita informação util!
Mas esse comando PingPong é para penas se mover de um eixo para outro diferente ou posso mover no mesmo eixo, no meu caso só o X?

porque eu quero que o objeto se mova só e X, de um ponto até o outro, e vai indo e  voltando...

Marc7
Avançado
Avançado

PONTOS : 358
REPUTAÇÃO : 7
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Guilherme_cj852 em Qui Jul 14, 2016 1:34 am

Marc7 escreveu:Valeu Prodigio pela indicação, excelente video, muita informação util!
Mas esse comando PingPong é para penas se mover de um eixo para outro diferente ou posso mover no mesmo eixo, no meu caso só o X?

porque eu quero que o objeto se mova só e X, de um ponto até o outro, e vai indo e  voltando...

Código:
// Nessa linha do script, é onde voce define que eixo sera alterado.
// Ex:

 transform.position = new Vector3 (X,Y,Z);
 transform.position = new Vector3 (0,valor,0);  // apenas eixo Y vai ser alterado
 transform.position = new Vector3 (valor,0,0);  // Apenas Eixo X vai ser alterado
 transform.position = new Vector3 (0,0,valor);  // Apenas Eixo Z vai ser alterado

// Pode repetir a variavel tambem

 transform.position = new Vector3 (valor,valor,0);  // Eixo X e Y serão alterados

Guilherme_cj852
ProgramadorMaster

Masculino PONTOS : 913
REPUTAÇÃO : 113
Idade : 15
Áreas de atuação : Programador C#
Designer
Iniciante em PHP
Respeito as regras :

Ver perfil do usuário http://ugames-studio.weebly.com/

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Marc7 em Qui Jul 14, 2016 1:57 am

Ah sim, valeu Guilherme por explicar!

Mas estou com um problema  aqui que é o seguinte, meu objeto está nas posições -6.32 em x e -2.1 em z.

Quando dou play para simular, o objeto pula de uma vez para a posição 0 em x e começa a se mover somente em x até a posição 6.32 e volta até o zero.
queria que ele começasse em -6.32 em x e vai até o 6.32 em x, indo e voltando entre esses dois valores, e não entre 0 e 6.32

o que devo alterar?

Marc7
Avançado
Avançado

PONTOS : 358
REPUTAÇÃO : 7
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Guilherme_cj852 em Qui Jul 14, 2016 2:19 am

o Mathf.PingPong so ira retorna um valor entre 0 e o que valor que voce definir então não tem como fazer ir de -6.32 ate 6.32

Então acho melhor voce usar animação mesmo

Guilherme_cj852
ProgramadorMaster

Masculino PONTOS : 913
REPUTAÇÃO : 113
Idade : 15
Áreas de atuação : Programador C#
Designer
Iniciante em PHP
Respeito as regras :

Ver perfil do usuário http://ugames-studio.weebly.com/

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Marc7 em Qui Jul 14, 2016 3:17 am

Fiz esse script e funcionou para o movimento vai e volta:

Código:

public float speed;
    public bool direcao;
    public float duracaoDirecao = 2.5f;

    private float tempoNaDirecao;

    void Start () {

    }

    void Update() {

        if (direcao) {
            transform.eulerAngles = new Vector2(0, 180);
        }
        else {
            transform.eulerAngles = new Vector2(0, 0);
        }
        transform.Translate(Vector2.right * speed * Time.deltaTime);
        tempoNaDirecao += Time.deltaTime;

        if (tempoNaDirecao >= duracaoDirecao) {
            tempoNaDirecao = 0;
            direcao = !direcao;
        }
    }




só que para se mover no sentido contrario o objeto tem que girar 180 graus, senão não funciona.
eu queria não precisar mudar essa rotação, porque dependendo do objeto que eu for usar não vai ser legal ela mudar sua figura, sua forma.

Marc7
Avançado
Avançado

PONTOS : 358
REPUTAÇÃO : 7
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como Fasso Isso ?????

Mensagem por Marc7 em Qui Jul 14, 2016 10:49 pm

Descobri uma maneira de fazer o movimento vai e volta, segue o script:


using UnityEngine;
using System.Collections;
 
public class ObjetoVaieVolta : MonoBehaviour {
 
    public float velocidade = 4;
    public float duracaoPosicao = 3.2f;
    public float tempo;
    public bool posicao;
 
    void Update() {
 
        tempo += Time.deltaTime;    //Aumenta o tempo que esta na posiçao atual.
 
        if (tempo >= duracaoPosicao) {  //Verifica se o tempo corrido atingiu o tempo limite para a duraçao da posiçao.
            tempo = 0;      //Caso ja tenha atingindo, entao zera a contagem, pois ela mudará de lado.
 
            //Muda a posiçao
            if (posicao) {
                posicao = false;
            }
            else {
                posicao = true;
            }
        }
       
        //movimenta
        if (posicao) {
            transform.Translate(Vector2.right * velocidade * Time.deltaTime);
        }
        else {
            transform.Translate(Vector2.left * velocidade * Time.deltaTime);
        }
    }

}




fica aí uma dica para quem quer fazer esse efeito!   Wink


o segredo é resetar o tempo quando ele chega em um certo valor definido.
a condição boleana tem que estar dentro do primeiro "if", senão não funciona.
Aí depois do lado de fora no unity tem que marcar a caixinha "Posição".


Última edição por Marc7 em Qui Jul 14, 2016 10:50 pm, editado 1 vez(es) (Razão : Faltou mais uma linha para explicar melhor.)

Marc7
Avançado
Avançado

PONTOS : 358
REPUTAÇÃO : 7
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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