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:
Unity 5 Bugado
Integração PHP e Unity
Alien Planet - Atmospheric scattering test
Ideia Inovadora
Duvida Animation Play não faz nada
Escolher que resoluções jogo vai ter
como usar o Lookat com o addforce do rigidibody?
[MagicaVoxel] Programa de modelagem de cenários cúbicos fácil
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Pra que serve o [SerializeField] e por que usar ele?
Animacao2D
[____TÓPICO LIVRE____] FALE O QUE QUISER
script
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
Forma uma equipe
Baixar Documentaçao Unity 3D?
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?
Cryengine 3?
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] Barra de VIDA / HP contínua
[TUTORIAL] Sistema de Escada Estilo FPS
[TUTORIAL] Melhorar a estabilidade dos veículos com Wheel Collider
Guitar The Legends of Brazil
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Examinar
Formação de Equipe Battle of Worlds
me ajudem neste script para subir escada
Texturas
script por favor me ajudem
Números aleatorios
Tem como saber o Tamanho do Objeto?
Banco de dados Aleatorio
Procuro desenhista para jogo 2D Pixel Art (Compra)
[Dúvida] Blender erro ao aplicar osso na mesh
[resolvido]enfiar float no UItext por script
Daria para pegar as horas do computador e por no jogo?
Gerador de Characters Autodesk Online
[JOGO DE FPS MULTIPLAYER] Alguém que saiba fazer animações na Unity 5 ou no blender :D
[LANÇADO] The Dilma
Inventario
Procuro vagas em equipes [Programador]
The Dilma - O terror da Petrobrás
Ajuda Neste Script?
Teste de usuário para um jogo
Procuro Equipe de Jogos 2D
Animações de sobra
[TUTORIAL]Singleton, A melhor forma de acessar a classe!
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Mudança de FPS afetam a velocidade das coisas
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
Como criar um ranking online na Unity usando a PlayFab e o Facebook?
Problema da Conta do comerciante do developer
BUG DE VOLUME NO SCRIPT MENU DE PAUSA
controle 2D com touch ou clique do mouse
[Dúvida] MySQL. Funciona apenas no editor.
[RESOLVIDO]como acesar uma void publica pelo script e ativa-la
Active UI
Como Criar Textura De Armas
Formaçao De Equipe (FLAMEBLOOD)
Fonte Proporcional
Ativar / Desativar Varios GameObject
[Duvida] Como fazer Medkit
[RESOLVIDO]Duvida com butao UI para ativar Void
Rodando o Sul
Procuro programadores para meu projeto BR Bus
Sistema de score
Strings e quebra de texto?
Procuro programadores para meu jogo
Interação com cenário
(formação de equipe BSU 17)
Hoje à(s) 7:16 am
Hoje à(s) 5:46 am
Hoje à(s) 4:25 am
Hoje à(s) 3:34 am
Ontem à(s) 11:57 pm
Ontem à(s) 11:55 pm
Ontem à(s) 11:46 pm
Ontem à(s) 11:46 pm
Ontem à(s) 11:36 pm
Ontem à(s) 11:31 pm
Ontem à(s) 11:30 pm
Ontem à(s) 11:24 pm
Ontem à(s) 11:11 pm
Ontem à(s) 10:58 pm
Ontem à(s) 1:32 pm
Ontem à(s) 12:01 pm
Ontem à(s) 10:53 am
Ontem à(s) 1:25 am
Ontem à(s) 1:11 am
Ontem à(s) 1:08 am
Sex Dez 02, 2016 11:59 pm
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:09 pm
Sex Dez 02, 2016 11:08 pm
Sex Dez 02, 2016 11:02 pm
Sex Dez 02, 2016 10:58 pm
Sex Dez 02, 2016 10:52 pm
Sex Dez 02, 2016 10:50 pm
Sex Dez 02, 2016 10:04 pm
Sex Dez 02, 2016 9:12 pm
Sex Dez 02, 2016 8:53 pm
Sex Dez 02, 2016 8:49 pm
Sex Dez 02, 2016 3:14 pm
Sex Dez 02, 2016 12:46 pm
Sex Dez 02, 2016 11:53 am
Sex Dez 02, 2016 8:06 am
Qui Dez 01, 2016 11:31 pm
Qui Dez 01, 2016 10:46 pm
Qui Dez 01, 2016 7:28 pm
Qui Dez 01, 2016 6:42 pm
Qui Dez 01, 2016 5:08 pm
Qui Dez 01, 2016 5:06 pm
Qui Dez 01, 2016 4:44 pm
Qua Nov 30, 2016 11:46 pm
Qua Nov 30, 2016 11:45 pm
Qua Nov 30, 2016 11:19 pm
Ter Nov 29, 2016 8:03 pm
Ter Nov 29, 2016 7:49 pm
Ter Nov 29, 2016 12:15 pm
Ter Nov 29, 2016 10:46 am
Ter Nov 29, 2016 10:13 am
Ter Nov 29, 2016 10:08 am
Ter Nov 29, 2016 6:32 am
Ter Nov 29, 2016 6:29 am
Ter Nov 29, 2016 3:13 am
Ter Nov 29, 2016 2:51 am
Ter Nov 29, 2016 2:47 am
Ter Nov 29, 2016 2:45 am
Ter Nov 29, 2016 1:42 am
Ter Nov 29, 2016 12:44 am
Ter Nov 29, 2016 12:24 am
Seg Nov 28, 2016 10:38 pm
Seg Nov 28, 2016 10:03 pm
Seg Nov 28, 2016 10:00 pm
Seg Nov 28, 2016 6:33 pm
Seg Nov 28, 2016 5:32 pm
Seg Nov 28, 2016 5:22 pm
Seg Nov 28, 2016 3:57 pm
Seg Nov 28, 2016 3:38 pm
Seg Nov 28, 2016 1:29 pm
Seg Nov 28, 2016 1:01 pm
Seg Nov 28, 2016 8:29 am
Seg Nov 28, 2016 7:22 am
AndyShow
artplayer
artplayer
Madness
vinilucas
Marc7
Dom3000
ismarspn
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
mafipt
dimmuo
dimmuo
Dom3000
Dom3000
Dom3000
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Dom3000
edumoran
dstaroski
dstaroski
Manawydan
Dom3000
artplayer
mlmattos
rafaelllsd
weslleyFx
Extreme Craft
Édipo
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
weslleyFx
mayokota
weslleyFx
artplayer
dimmuo
Hardencio
Hardencio
Callyde Jr
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Extreme Craft
kalielson
kalielson
artplayer
leandroinforware
leandroinforware
John Rambo
Extreme Craft
WesleyLemosLeal
Kelvyn_Feitosa
Weverton Borges da Silva
leandroinforware
mafipt
dimmuo
dstaroski

Como deixar o movimento suave?

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

DÚVIDA Como deixar o movimento suave?

Mensagem por Hardencio em Sex Set 30, 2016 1:15 am

Fala guris,

To usando um tipo de movimentação tipo um pouco de cada kkk por exemplo: Cada vez que quero que o player ande ele só vai andar um pouco.
Código:
transform.position = new Vector3 (distancePulo, 0, 0);

To usando isso pra movimentar, porem ele movimenta instantaneamente até o local que eu quero. Gostaria de saber como fazer ele ir do ponto que ele está até a distancia determinada de uma maneira suave. (Que de pra ver ele indo)

Código:
void swipe (){
      Vector2 distance = endPos - startPos;
      if(Mathf.Abs (distance.x) > Mathf.Abs (distance.y)){
         Debug.Log ("Horizontal Swpie");
         if (distance.x > 0 && gameObject.transform.position == endPos2) {
            Debug.Log ("Right");
            transform.position = new Vector3 (distancePulo, 0, 0);
}
}
}

Hardencio
MembroAvançado

Masculino PONTOS : 691
REPUTAÇÃO : 7
Áreas de atuação : Inermis Studios
Respeito as regras :

Ver perfil do usuário https://www.facebook.com/inermisstudios/

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como deixar o movimento suave?

Mensagem por MarcosSchultz em Sex Set 30, 2016 3:59 pm


MarcosSchultz
Administrador

Masculino PONTOS : 7132
REPUTAÇÃO : 878
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

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

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como deixar o movimento suave?

Mensagem por Hardencio em Sex Set 30, 2016 8:19 pm

Fiz essa parada do Lerp, porem quando movo para os outros lado ele sempre vai na lata até a posição... 

Código:
transform.position = Vector3.Lerp (transform.position, new Vector3(1,0,0), 1);

Queria que cada swipe que eu faço, ele ande no transform o valor 1,  tipo acrescentando mais um...
Como assim: 
Código:
//esse endPos é um Vector3
endPos = new Vector3(transform.position.x, transform.position.y, transform.position.z + distanciaPulo);
Porem nesse script que estou usando não consigo usar esse tipo de movimento.

Hardencio
MembroAvançado

Masculino PONTOS : 691
REPUTAÇÃO : 7
Áreas de atuação : Inermis Studios
Respeito as regras :

Ver perfil do usuário https://www.facebook.com/inermisstudios/

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como deixar o movimento suave?

Mensagem por George Lucas Vieira em Sab Out 01, 2016 12:58 pm

Multiplique por Time.deltaTime.
Código:
transform.position = Vector3.Lerp (transform.position, new Vector3(1,0,0), 5 * Time.deltaTime);

George Lucas Vieira
Moderador

Masculino PONTOS : 433
REPUTAÇÃO : 97
Idade : 13
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como deixar o movimento suave?

Mensagem por Hardencio em Sab Out 01, 2016 1:26 pm

Não funciona, pq ele sempre vai pra essa posição ali do transform. Quero que ele adicione um valor no transform a cada movimento. Por exemplo, se eu movo para a direita, quero que meu personagem vá para a direita no transform, se quero que ele vá pra cima mesma coisa para cima. Sempre acrescentando um valor no transform. Igual o jogo Crossy Road.

Vou mostrar bem certo o que estou tentando fazer. 

Basicamente esse script está funcionando, porem o touch dele  esta bem ruim. 
Código:
using UnityEngine;
using System.Collections;

public class TesteTouch : MonoBehaviour {

   float lerpTime;
   float currentLertTime;
   float perc = 1;
   [Range(0.05f,50)] public float sensibilidade = 0.1f;
   private bool podeMover;
   Vector3 startPos;
   Vector3 endPos;

   public float forcaPulo;

   bool firstInput;
   public bool justJump;

   public float distanciaPulo = 1f;

   private float ponteiroY, ponteiroX;

   public static bool frente;
   public static bool tras;
   public static bool dir;
   public static bool esq;

   public static int ultimo;

   void setMoves(){
      frente = tras = dir = esq = false;
   }
   void Start (){
      frente = tras = dir = esq = true;
   }
      
   void Update(){
      ponteiroX = ponteiroY = 0;
      if (Input.touchCount > 0.8f ){
         if (perc == 1) {
            lerpTime = 1;
            currentLertTime = 0;
            firstInput = true;
            justJump = true;
         }
         if (Mathf.Abs (Input.touches [0].deltaPosition.y) > sensibilidade) {
         ponteiroY = Input.touches [0].deltaPosition.y;
         } else {
            ponteiroY = 0;
         }
         if (Mathf.Abs (Input.touches [0].deltaPosition.x) > sensibilidade) {
            ponteiroX = Input.touches [0].deltaPosition.x;
         } else {
            ponteiroX = 0;
         }
      }
      else{
      podeMover = true;
   }
      startPos = gameObject.transform.position;

      if (ponteiroY > 0 && podeMover == true && gameObject.transform.position == endPos && frente == true) {
         //justJump = true;
         gameObject.transform.rotation = Quaternion.Euler (0, 180, 0);
         endPos = new Vector3(transform.position.x + distanciaPulo, transform.position.y, transform.position.z);
         podeMover = false;
         //ultimo = 1;
         Debug.Log ("No y > 0  heim");
      }
      if (ponteiroY < 0 && podeMover == true && gameObject.transform.position == endPos && tras == true) {
         //justJump = true;
         gameObject.transform.rotation = Quaternion.Euler (0, 0, 0);
         endPos = new Vector3(transform.position.x - distanciaPulo, transform.position.y, transform.position.z);
         podeMover = false;
         //ultimo = 0;
         Debug.Log ("No y < 0heim");
      }

      if (ponteiroX > 0  && podeMover == true && gameObject.transform.position == endPos && dir == true) {
         //justJump = true;
         gameObject.transform.rotation = Quaternion.Euler (0, -90, 0);
         endPos = new Vector3(transform.position.x, transform.position.y, transform.position.z - distanciaPulo);
         podeMover = false;
         //ultimo = 2;
         Debug.Log ("No X > 0 heim");
      }
      if (ponteiroX < 0 && podeMover == true && gameObject.transform.position == endPos && esq == true) {
         //justJump = true;
         gameObject.transform.rotation = Quaternion.Euler (0, 90, 0);
         endPos = new Vector3(transform.position.x, transform.position.y, transform.position.z + distanciaPulo);
         podeMover = false;
         //ultimo = 3;
         Debug.Log ("No X < 0 heim");
      }
      if (firstInput == true) {
         currentLertTime += Time.deltaTime * 4;
         perc = currentLertTime / lerpTime;
         gameObject.transform.position = Vector3.Lerp (startPos, endPos, perc);
         if (perc > 0.8) {
            perc = 1;
         }
         if (Mathf.Round (perc) == 1) {
            
            justJump = false;

            }
         }
      }
   }

Estou tentando fazer esse script a cima, funcionar nesse aqui em baixo. Porem não to conseguindo pq ele da uns bugs locos no jogo, tipo ele some da tela, ou a camera não segue mais ele, treme tudo..etc

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

public class TesteDeMoves : MonoBehaviour {

   public float maxTime;
   public float minSwipeDist;

   float startTime;
   float endTime;

   Vector3 startPos;
   Vector3 endPos;

   Vector3 vetorTeste;
   Vector3 vetorTeste2;


   float swipeDistace;
   float swpieTime;

   public float pulo;
   public float distancePulo;

   float lerpTime;
   float currentLertTime;
   float perc = 1;
   bool firstInput;
   public bool justJump;

   public bool andarDireita;

   public static bool frente;
   public static bool tras;
   public static bool dir;
   public static bool esq;

   public static int ultimo;

   void setMoves(){
      frente = tras = dir = esq = false;
   }
   void Start (){
      frente = tras = dir = esq = true;
      andarDireita = false;
   }

   void Update(){
      if (Input.touchCount > 0) {
         Touch touch = Input.GetTouch (0);
         if (touch.phase == TouchPhase.Began) {
            startTime = Time.time;
            startPos = touch.position;
         }else if (touch.phase == TouchPhase.Ended) {
            endTime = Time.time;
            endPos = touch.position;

            swipeDistace = (endPos - startPos).magnitude;
            swpieTime = endTime - startTime;

            if (swpieTime < maxTime && swipeDistace > minSwipeDist) {
               Vector2 distance = endPos - startPos;
               if (Mathf.Abs (distance.x) > Mathf.Abs (distance.y)) {
                  Debug.Log ("Horizontal Swpie");
                  if (distance.x > 0 && dir == true) {
                     Debug.Log ("Right");
                     gameObject.transform.rotation = Quaternion.Euler (0, -90, 0);
                     //transform.position += new Vector3 (0, 0, -distancePulo);
                     transform.position = Vector3.Lerp (transform.position, new Vector3(1,0,0), 5 * Time.deltaTime);
                     ultimo = 2;
                  }
                  if (distance.x < 0 && esq == true) {
                     Debug.Log ("Letf");
                     gameObject.transform.rotation = Quaternion.Euler (0, 90, 0);
                     transform.position += new Vector3 (0, 0, distancePulo);
                     ultimo = 3;
                  }
               } else if (Mathf.Abs (distance.x) < Mathf.Abs (distance.y)) {
                  Debug.Log ("Vertical Swpie");
                  if (distance.x > 0 && frente == true) {
                     Debug.Log ("Up");
                     gameObject.transform.rotation = Quaternion.Euler (0, 180, 0);
                     transform.position += new Vector3 (distancePulo, 0, 0);
                     ultimo = 1;
                  }
                  if (distance.x < 0 && tras == true) {
                     Debug.Log ("Down");
                     gameObject.transform.rotation = Quaternion.Euler (0, 0, 0);
                     transform.position += new Vector3 (-distancePulo, 0, 0);
                     ultimo = 0;
                     }
                  }
               }
            }
         }
      }
   }

Queria fazer funcionar nesse script aqui. Oq faz o outro

Hardencio
MembroAvançado

Masculino PONTOS : 691
REPUTAÇÃO : 7
Áreas de atuação : Inermis Studios
Respeito as regras :

Ver perfil do usuário https://www.facebook.com/inermisstudios/

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como deixar o movimento suave?

Mensagem por MarcosSchultz em Seg Out 03, 2016 5:32 pm

ué, mas neste último script você só colocou o Lerp em um dos transform.position...

um segundo tem "+=", tem um outro que é só setado O.o

MarcosSchultz
Administrador

Masculino PONTOS : 7132
REPUTAÇÃO : 878
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

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

Voltar ao Topo Ir em baixo

DÚVIDA Re: Como deixar o movimento suave?

Mensagem por Hardencio em Seg Out 03, 2016 7:59 pm

Não to entendendo...

Se eu fizer a mesma coisa do script que está funcionando no meu novo script ele não funciona..por causa que esta diferente as coisas do touch. Ele dá umas bugadas por causa dos Vetores endPos e starPos é isso que não estou conseguindo fazer. Eu não sei oq está acontecendo..mas queria que funcionasse de alguma forma o Lerp pra não ficar o movimento na lata. Como que faço para funcionar o lerp nesse script? 

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

public class TesteDeMoves : MonoBehaviour {

 public float maxTime;
 public float minSwipeDist;

 float startTime;
 float endTime;

 Vector3 startPos;
 Vector3 endPos;

 float swipeDistace;
 float swpieTime;

 public float distancePulo;

 public bool andarDireita;

 public static bool frente;
 public static bool tras;
 public static bool dir;
 public static bool esq;

 public static int ultimo;

 void setMoves(){
 frente = tras = dir = esq = false;
 }
 void Start (){
 frente = tras = dir = esq = true;
 andarDireita = false;
 }

 void Update(){
 if (Input.touchCount > 0) {
 Touch touch = Input.GetTouch (0);
 if (touch.phase == TouchPhase.Began) {
 startTime = Time.time;
 startPos = touch.position;
 }else if (touch.phase == TouchPhase.Ended) {
 endTime = Time.time;
 endPos = touch.position;

 swipeDistace = (endPos - startPos).magnitude;
 swpieTime = endTime - startTime;

 if (swpieTime < maxTime && swipeDistace > minSwipeDist) {
 Vector2 distance = endPos - startPos;
 if (Mathf.Abs (distance.x) > Mathf.Abs (distance.y)) {
 Debug.Log ("Horizontal Swpie");
 if (distance.x > 0 && dir == true) {
 Debug.Log ("Right");
 gameObject.transform.rotation = Quaternion.Euler (0, -90, 0);
 transform.position += new Vector3 (0, 0, -distancePulo);
 //transform.position = Vector3.Lerp (transform.position, new Vector3(1,0,0), 5 * Time.deltaTime);
 ultimo = 2;
 }
 if (distance.x < 0 && esq == true) {
 Debug.Log ("Letf");
 gameObject.transform.rotation = Quaternion.Euler (0, 90, 0);
 transform.position += new Vector3 (0, 0, distancePulo);
 ultimo = 3;
 }
 } else if (Mathf.Abs (distance.x) < Mathf.Abs (distance.y)) {
 Debug.Log ("Vertical Swpie");
 if (distance.x > 0 && frente == true) {
 Debug.Log ("Up");
 gameObject.transform.rotation = Quaternion.Euler (0, 180, 0);
 transform.position += new Vector3 (distancePulo, 0, 0);
 ultimo = 1;
 }
 if (distance.x < 0 && tras == true) {
 Debug.Log ("Down");
 gameObject.transform.rotation = Quaternion.Euler (0, 0, 0);
 transform.position += new Vector3 (-distancePulo, 0, 0);
 ultimo = 0;
 }
 }
 }
 }
 }
 }
 }

Lembrando que é um movimento estilo crossy road ou subway surfers.

Esse script de swipe fiz a partir desse tutorial: https://www.youtube.com/watch?v=TEROHR1XTaY

Hardencio
MembroAvançado

Masculino PONTOS : 691
REPUTAÇÃO : 7
Áreas de atuação : Inermis Studios
Respeito as regras :

Ver perfil do usuário https://www.facebook.com/inermisstudios/

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