Mover objeto com física
4 participantes
Página 1 de 1
Mover objeto com física
Estou tentando criar um sistema de tirolesa, porém quando aperto o botão pra que meu player se desloque, se coloco a "speed" muito baixa, ele simplesmente cai antes de chegar no final do trajeto e se uso uma speed mais alta ele simplesmente teletransporta, e sim usei o vector3.lerp mas não funcionou
Aqui meu código(caso queiram dar uma olhada):
Tentei dessas três formas e nenhuma teve sucesso, me basei em um tutorial, porém ele estava em javaScript então não sei se converti direito
https://www.youtube.com/watch?v=9u9Sgb0M_wI&t=301s (vídeo que me usei)
public class Tirolesa : MonoBehaviour {
public Transform endPos;
public float speed;
//public float time;
private float elapsedTime = 0f;
private Vector3 startingPos;
private Rigidbody2D rb;
void Start () {
rb = GetComponent<Rigidbody2D> ();
}
// Update is called once per frame
void Update () {
}
public void UseTirolosa()
{
http://rb.MovePosition (rb.position + Vector3.forward * speed * Time.deltaTime);
http://transform.Translate = Vector3.Lerp(transform.position,endPos.position, (time * Time.deltaTime));
/* while (elapsedTime < time)
{
startingPos = transform.position;
transform.position = Vector3.Lerp(startingPos,endPos.position,(elapsedTime * time));
elapsedTime += Time.deltaTime;
} */
}
Aqui meu código(caso queiram dar uma olhada):
Tentei dessas três formas e nenhuma teve sucesso, me basei em um tutorial, porém ele estava em javaScript então não sei se converti direito
https://www.youtube.com/watch?v=9u9Sgb0M_wI&t=301s (vídeo que me usei)
public class Tirolesa : MonoBehaviour {
public Transform endPos;
public float speed;
//public float time;
private float elapsedTime = 0f;
private Vector3 startingPos;
private Rigidbody2D rb;
void Start () {
rb = GetComponent<Rigidbody2D> ();
}
// Update is called once per frame
void Update () {
}
public void UseTirolosa()
{
http://rb.MovePosition (rb.position + Vector3.forward * speed * Time.deltaTime);
http://transform.Translate = Vector3.Lerp(transform.position,endPos.position, (time * Time.deltaTime));
/* while (elapsedTime < time)
{
startingPos = transform.position;
transform.position = Vector3.Lerp(startingPos,endPos.position,(elapsedTime * time));
elapsedTime += Time.deltaTime;
} */
}
QueriaStarMorto- Avançado
- PONTOS : 2425
REPUTAÇÃO : 19
Respeito as regras :
Re: Mover objeto com física
Boa tarde! o seu código ta estranho cara, usando translate e Rigidbody juntos. Vou ver se consigo converter pra você.QueriaStarMorto escreveu:Estou tentando criar um sistema de tirolesa, porém quando aperto o botão pra que meu player se desloque, se coloco a "speed" muito baixa, ele simplesmente cai antes de chegar no final do trajeto e se uso uma speed mais alta ele simplesmente teletransporta, e sim usei o vector3.lerp mas não funcionou
Aqui meu código(caso queiram dar uma olhada):
Tentei dessas três formas e nenhuma teve sucesso, me basei em um tutorial, porém ele estava em javaScript então não sei se converti direito
https://www.youtube.com/watch?v=9u9Sgb0M_wI&t=301s (vídeo que me usei)
public class Tirolesa : MonoBehaviour {
public Transform endPos;
public float speed;
//public float time;
private float elapsedTime = 0f;
private Vector3 startingPos;
private Rigidbody2D rb;
void Start () {
rb = GetComponent<Rigidbody2D> ();
}
// Update is called once per frame
void Update () {
}
public void UseTirolosa()
{
http://rb.MovePosition (rb.position + Vector3.forward * speed * Time.deltaTime);
http://transform.Translate = Vector3.Lerp(transform.position,endPos.position, (time * Time.deltaTime));
/* while (elapsedTime < time)
{
startingPos = transform.position;
transform.position = Vector3.Lerp(startingPos,endPos.position,(elapsedTime * time));
elapsedTime += Time.deltaTime;
} */
}
Abraço!
Re: Mover objeto com física
não deu cara, não consegui. Talvez apareça alguém que consiga te ajudar ai, em outro caso procure outros tuto e em C# mesmo, e comece a aprender C#, pois é a linguagem oficial da Unity atualmente. No canal do Marcos tem uma playlist completa ensinando, aqui também tem vários tópicos com explicando sobre C#.
Quando postar scripts, utilize o botão "script" no editor, e coloque o código dentro da caixa cinza, assim ficará organizado corretamente.
Abraço!
Quando postar scripts, utilize o botão "script" no editor, e coloque o código dentro da caixa cinza, assim ficará organizado corretamente.
Abraço!
Re: Mover objeto com física
Obrigado mesmo assim, estava utilizando uns métodos que vi nessa série do Marcos, mas não consegui com nenhum e não tem nenhum outra tutorial na internet sobre esse assunto kkk. Vou continuar tentando algumas doideiras até ir
QueriaStarMorto- Avançado
- PONTOS : 2425
REPUTAÇÃO : 19
Respeito as regras :
Re: Mover objeto com física
Física né? hum rs
Boa noite moço do nome estranho, infelizmente desconheço uma forma de simular uma tirolesa da maneira como ela funciona na vida real. Maaass, uma tirolesa não é muito diferente de um escorregador, não acha?
Bom, o que eu fiz foi:
1 modelei uma espécie de "calha", um plano esticado, com umas bordas, parecido com um escorregador.
2 Criei um material físico, que é um material que você configura coisas como a friccção do objeto, você pode ler mais sobre isso AQUI. zerei o valor de fricção para que qualquer coisa que estiver em contato com ele, escorregue.
3 adicionei um cubo com box collider e rigidbody, aumentei a massa para algo razoável (tipo uns 5Kg), esse objeto será quem desliza na calha que falei.
com esse setup, temos um cubo que escorrega e uma calha inclinada, iniciando o jogo, o cubo começa a escorregar e ganhar velocidade, como é esperado.
Com isso pronto, basta ligar a roldana da tirolesa nesse cubo, e modelar o cabo de aço no mesmo local da calha, e você tem sua simulação ocorrendo bem próximo ao que você deseja.
Aqui está uma imagem da minha cena. Nela você pode ver o cubo e a calha,(sem o mesh renderer, pois só me interessa a física) além dos outros objetos que são filiados, esses sim tem um mesh renderer pois é o que irá aparecer pro jogador.
Meu PC foi formatado e estou sem um gravador de vídeos. Mas se quiser baixar essa cena pra dar uma olhadinha funcionando, aqui está o link. (Download)
Melhor parte, não precisei codificar nada, tudo feito com física.
#Edit
@Berlin
Estou incluindo imagens mostrando a calha e o cubo, o print foi feito no Blender, mas não seria muito diferente se fosse na Unity com os Mesh Renderers.
Pra ligar a esfera que aparece na primeira imagem, eu usei um hinge joint, assim ela balança livremente conforme a tirolesa se movimenta.
Lembrando que a calha deve usar um mesh collider, com a opção convexa desmarcada, senão o cubo cai.
Boa noite moço do nome estranho, infelizmente desconheço uma forma de simular uma tirolesa da maneira como ela funciona na vida real. Maaass, uma tirolesa não é muito diferente de um escorregador, não acha?
Bom, o que eu fiz foi:
1 modelei uma espécie de "calha", um plano esticado, com umas bordas, parecido com um escorregador.
2 Criei um material físico, que é um material que você configura coisas como a friccção do objeto, você pode ler mais sobre isso AQUI. zerei o valor de fricção para que qualquer coisa que estiver em contato com ele, escorregue.
3 adicionei um cubo com box collider e rigidbody, aumentei a massa para algo razoável (tipo uns 5Kg), esse objeto será quem desliza na calha que falei.
com esse setup, temos um cubo que escorrega e uma calha inclinada, iniciando o jogo, o cubo começa a escorregar e ganhar velocidade, como é esperado.
Com isso pronto, basta ligar a roldana da tirolesa nesse cubo, e modelar o cabo de aço no mesmo local da calha, e você tem sua simulação ocorrendo bem próximo ao que você deseja.
Aqui está uma imagem da minha cena. Nela você pode ver o cubo e a calha,(sem o mesh renderer, pois só me interessa a física) além dos outros objetos que são filiados, esses sim tem um mesh renderer pois é o que irá aparecer pro jogador.
Meu PC foi formatado e estou sem um gravador de vídeos. Mas se quiser baixar essa cena pra dar uma olhadinha funcionando, aqui está o link. (Download)
Melhor parte, não precisei codificar nada, tudo feito com física.
#Edit
@Berlin
Estou incluindo imagens mostrando a calha e o cubo, o print foi feito no Blender, mas não seria muito diferente se fosse na Unity com os Mesh Renderers.
Pra ligar a esfera que aparece na primeira imagem, eu usei um hinge joint, assim ela balança livremente conforme a tirolesa se movimenta.
Lembrando que a calha deve usar um mesh collider, com a opção convexa desmarcada, senão o cubo cai.
Última edição por Isabela em Qui Jul 26, 2018 8:07 pm, editado 3 vez(es)
Isabela- Avançado
- PONTOS : 2836
REPUTAÇÃO : 260
Idade : 24
Respeito as regras :
Re: Mover objeto com física
pensando aqui brother, e com a suprema explicação e exemplo da Isabela, acredito que se pode fazer o player digamos, se "segurar e deslizar na tirolesa" apenas tornando ele um parente digamos do objeto de gancho, assim como é usado em plataformas que se movimentam, teria de testar, mas acredito ser uma caminho.
Abraço!
Abraço!
Re: Mover objeto com física
Que simplicidade, perfeitoIsabela escreveu:Física né? hum rs
Boa noite moço do nome estranho, infelizmente desconheço uma forma de simular uma tirolesa da maneira como ela funciona na vida real. Maaass, uma tirolesa não é muito diferente de um escorregador, não acha?
Bom, o que eu fiz foi:
1 modelei uma espécie de "calha", um plano esticado, com umas bordas, parecido com um escorregador.
2 Criei um material físico, que é um material que você configura coisas como a friccção do objeto, você pode ler mais sobre isso AQUI. zerei o valor de fricção para que qualquer coisa que estiver em contato com ele, escorregue.
3 adicionei um cubo com box collider e rigidbody, aumentei a massa para algo razoável (tipo uns 5Kg), esse objeto será quem desliza na calha que falei.
com esse setup, temos um cubo que escorrega e uma calha inclinada, iniciando o jogo, o cubo começa a escorregar e ganhar velocidade, como é esperado.
Com isso pronto, basta ligar a roldana da tirolesa nesse cubo, e modelar o cabo de aço no mesmo local da calha, e você tem sua simulação ocorrendo bem próximo ao que você deseja.
Aqui está uma imagem da minha cena. Nela você pode ver o cubo e a calha,(sem o mesh renderer, pois só me interessa a física) além dos outros objetos que são filiados, esses sim tem um mesh renderer pois é o que irá aparecer pro jogador.
Meu PC foi formatado e estou sem um gravador de vídeos. Mas se quiser baixar essa cena pra dar uma olhadinha funcionando, aqui está o link. (Download)
Melhor parte, não precisei codificar nada, tudo feito com física.
Fiquei curioso para ver os objetos com mesh renderer.
Tópicos semelhantes
» Como mover um objeto para outro objeto (Navmesh ?)
» Mover objeto no eixo y
» mover objeto ao encostar em um trigger
» Mover posição de objeto por slider
» COMO MOVER UM OBJETO OU PERSONAGEM
» Mover objeto no eixo y
» mover objeto ao encostar em um trigger
» Mover posição de objeto por slider
» COMO MOVER UM OBJETO OU PERSONAGEM
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos