Objeto se mover em lerp para uma posição X e Y aleatórias
2 participantes
Página 1 de 1
Objeto se mover em lerp para uma posição X e Y aleatórias
pessoal, estou instanciando um tiro que é uma bola de plasma que vai sair de uma nave, quero que esse tiro chegue até uma certa posição e então ele vai explodir e gerar varios outros tiros pequenos em varias direções.
mas a primeira trajetoria desse tiro antes de explodir é do ponto onde ele será instanciado até outro que será aleatorio em X e Y.
por exemplo ele sai do ponto de partida e vai até -3x / 4Y, mas depois quando for instanciado de novo, ele vai até 2x / -2y
não são posições fixas, são aleatorias porque vou usar o Random.Range, eu citei os numeros acima só simulando
o problema é que usei aqui o Random.Range mas não está funcionando, o tiro fica tremulo.
o script de movimento do tiro:
se precisar posto um video como está acontecendo!
agradeço qualquer ajuda!!
mas a primeira trajetoria desse tiro antes de explodir é do ponto onde ele será instanciado até outro que será aleatorio em X e Y.
por exemplo ele sai do ponto de partida e vai até -3x / 4Y, mas depois quando for instanciado de novo, ele vai até 2x / -2y
não são posições fixas, são aleatorias porque vou usar o Random.Range, eu citei os numeros acima só simulando
o problema é que usei aqui o Random.Range mas não está funcionando, o tiro fica tremulo.
o script de movimento do tiro:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TiroA2 : MonoBehaviour {
public float speedA;
private float time;
void Start () {
Destroy(gameObject, 2f);
}
void Update () {
time += Time.deltaTime;
if (time >= 0.2f) {
transform.position = Vector3.Lerp(transform.position, new Vector3(Random.Range(-4f, 5f), Random.Range(-3, 3f)), Time.deltaTime * speedA);
}
}
}
se precisar posto um video como está acontecendo!
agradeço qualquer ajuda!!
Marc7- Mestre
- PONTOS : 3444
REPUTAÇÃO : 28
Respeito as regras :
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
Cara, está fazendo errado.
Primeiramente, eu não usaria Vector3.Lerp, e sim AddForce, mas não é algo "errado em si"
O seu grande erro é que você está fazendo o Random.Range no Update. Você tem que criar um vetor e fazer o random no Start, o Update apenas vai seguir este vetor... do contrário, você vai estar fazendo um random.Range o tempo todo.
Primeiramente, eu não usaria Vector3.Lerp, e sim AddForce, mas não é algo "errado em si"
O seu grande erro é que você está fazendo o Random.Range no Update. Você tem que criar um vetor e fazer o random no Start, o Update apenas vai seguir este vetor... do contrário, você vai estar fazendo um random.Range o tempo todo.
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
MarcosSchultz escreveu:Cara, está fazendo errado.
Primeiramente, eu não usaria Vector3.Lerp, e sim AddForce, mas não é algo "errado em si"
O seu grande erro é que você está fazendo o Random.Range no Update. Você tem que criar um vetor e fazer o random no Start, o Update apenas vai seguir este vetor... do contrário, você vai estar fazendo um random.Range o tempo todo.
sim Marcos, eu pensei em o random estar se repetindo no update, tentei joga-lo no start e testei mas não aconteceu nada.
poderia postar um script usando o AddForce, ou de outra forma?
Marc7- Mestre
- PONTOS : 3444
REPUTAÇÃO : 28
Respeito as regras :
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
O random no Start seria assim:
Com AddForce, você teria que refazer o sistema.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TiroA2 : MonoBehaviour {
public float speedA;
private float time;
Vector3 destino;
void Start () {
Destroy(gameObject, 2f);
destino = new Vector3 (Random.Range (-4f, 5f), Random.Range (-3, 3f));
}
void Update () {
time += Time.deltaTime;
if (time >= 0.2f) {
transform.position = Vector3.Lerp(transform.position, destino, Time.deltaTime * speedA);
}
}
}
Com AddForce, você teria que refazer o sistema.
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
bacana Marcos agora foi exato o que queria!
pretendia mesmo era criar mais outros dois tiros iguais e fazer cada um seguir uma rota aleatoria após criados, e funcionou perfeito. cada vez que simulo a trajetoria é diferente p cada tiro.
o que estava dando errado no Start era que eu estava jogando tudo dentro dele, até a linha transform.position = Vector3.Lerp(transform.position, destinoC, Time.deltaTime * speedC);
pretendia mesmo era criar mais outros dois tiros iguais e fazer cada um seguir uma rota aleatoria após criados, e funcionou perfeito. cada vez que simulo a trajetoria é diferente p cada tiro.
o que estava dando errado no Start era que eu estava jogando tudo dentro dele, até a linha transform.position = Vector3.Lerp(transform.position, destinoC, Time.deltaTime * speedC);
Marc7- Mestre
- PONTOS : 3444
REPUTAÇÃO : 28
Respeito as regras :
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
Marcos, aproveito eu vou perguntar aqui, esse tiro de plasma é uma animação de 32 frames, ele está com o Loop marcado mas quando chega no ultimo frame ele pára um instante curto (tipo 1 segundo) e recomeça a animação.
estou na unity 5.5.1 que instalei recentemente e quando era na 5.4.4 nao tinha isso.
será que colocaram uma nova ferramenta para deixar selecionada ou não, que altera isso?
estou na unity 5.5.1 que instalei recentemente e quando era na 5.4.4 nao tinha isso.
será que colocaram uma nova ferramenta para deixar selecionada ou não, que altera isso?
Marc7- Mestre
- PONTOS : 3444
REPUTAÇÃO : 28
Respeito as regras :
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
Marc7 escreveu:Marcos, aproveito eu vou perguntar aqui, esse tiro de plasma é uma animação de 32 frames, ele está com o Loop marcado mas quando chega no ultimo frame ele pára um instante curto (tipo 1 segundo) e recomeça a animação.
estou na unity 5.5.1 que instalei recentemente e quando era na 5.4.4 nao tinha isso.
será que colocaram uma nova ferramenta para deixar selecionada ou não, que altera isso?
isto geralmente acontece por causa do formato da animação, ou coisas assim, por exemplo:
audios em mp3 tem esse delay
audios em wav não tem esse delay, e por ai vai.
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
os sprites das minhas animações estão em .PNG
PNG dá muito esse problema?
já que vc falou audio, qual formato é melhor eu importar para os sons de BGM e SE, os MP3 ou os WAV?
PNG dá muito esse problema?
já que vc falou audio, qual formato é melhor eu importar para os sons de BGM e SE, os MP3 ou os WAV?
Marc7- Mestre
- PONTOS : 3444
REPUTAÇÃO : 28
Respeito as regras :
Re: Objeto se mover em lerp para uma posição X e Y aleatórias
utilize áudios em WAV, pois não possuem nenhum delay.
Tópicos semelhantes
» Mover posição de objeto por slider
» Fazer objeto mover para frente.
» Como mover um objeto para outro objeto (Navmesh ?)
» Rotacionar objeto e mover para a direita e para a esquerda
» Como faço para mudar a posição de um objeto para perto de outro.
» Fazer objeto mover para frente.
» Como mover um objeto para outro objeto (Navmesh ?)
» Rotacionar objeto e mover para a direita e para a esquerda
» Como faço para mudar a posição de um objeto para perto de outro.
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos