[RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
Bom dia galera. Gostaria de saber se é possível tirar esse impulso na hora de colidir com algum objeto. Essa ação faz muita das vezes meu jogo da bug e fazer com que o personagem atravesse a parede .
Última edição por dstaroski em Sáb Out 05, 2019 9:03 pm, editado 1 vez(es) (Motivo da edição : Resolvido)
gersoneson- Membro
- PONTOS : 1919
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
É provavelmente porque você está usando Transform.Translate.. Poste seu script aqui para que possamos fazer alguma coisa em relação à isso...
Mas dê uma olhada em https://docs.unity3d.com/Manual/class-Rigidbody2D.html
Mas dê uma olhada em https://docs.unity3d.com/Manual/class-Rigidbody2D.html
NKKF- ProgramadorMaster
- PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
Acredito que seja também o uso da movimentação do Translate, ele não respeita a física do jogo, só teleporta o personagem pelo cenário, então se o objeto entrar em colisão e atravessar o collider por conta do teleporte, a Unity tenta corrigir com uma interpolação, mas às vezes é perceptível.
Recomendo movimentar o player usando o Rigidbody.velocity, daí isso não vai mais acontecer.
Recomendo movimentar o player usando o Rigidbody.velocity, daí isso não vai mais acontecer.
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Movimento : MonoBehaviour
{
// Start is called before the first frame update
private float vel;
private Vector2 direcao;
void Start()
{
direcao = Vector2.zero;
vel = 15;
}
// Update is called once per frame
void Update()
{
movimento();
transform.Translate(direcao * vel * Time.deltaTime);
direcao = Vector2.zero;
}
// void de movimento
void movimento()
{
if (Input.GetKey(KeyCode.UpArrow))
{
direcao += Vector2.up;
}
if (Input.GetKey(KeyCode.DownArrow))
{
direcao += Vector2.down;
}
if (Input.GetKey(KeyCode.RightArrow))
{
direcao += Vector2.right;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
direcao += Vector2.left;
}
}
}
Valeu amigo!
NKKF escreveu:É provavelmente porque você está usando Transform.Translate.. Poste seu script aqui para que possamos fazer alguma coisa em relação à isso...
Mas dê uma olhada em https://docs.unity3d.com/Manual/class-Rigidbody2D.html
gersoneson- Membro
- PONTOS : 1919
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
Valeu mano! Vou da um teste aqui e já volto com o resultado.MayLeone escreveu:Acredito que seja também o uso da movimentação do Translate, ele não respeita a física do jogo, só teleporta o personagem pelo cenário, então se o objeto entrar em colisão e atravessar o collider por conta do teleporte, a Unity tenta corrigir com uma interpolação, mas às vezes é perceptível.
Recomendo movimentar o player usando o Rigidbody.velocity, daí isso não vai mais acontecer.
gersoneson- Membro
- PONTOS : 1919
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
Poderia me dar um exemplo desse comando para 2D ? Na net só estou achando 3DMayLeone escreveu:Acredito que seja também o uso da movimentação do Translate, ele não respeita a física do jogo, só teleporta o personagem pelo cenário, então se o objeto entrar em colisão e atravessar o collider por conta do teleporte, a Unity tenta corrigir com uma interpolação, mas às vezes é perceptível.
Recomendo movimentar o player usando o Rigidbody.velocity, daí isso não vai mais acontecer.
gersoneson- Membro
- PONTOS : 1919
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
Aqui neste LINK há um vídeo sobre o mesmo, bem simples para movimentação de objetos (tipo seu Player). Espero ter ajudado.
O vídeo não está em português.
Edit: Perdão, acabei mandando um video de termo parecido, o mesmo trabalha com o Transform.position, mas no caso, também é auxílio sobre movimentação.
O vídeo não está em português.
Edit: Perdão, acabei mandando um video de termo parecido, o mesmo trabalha com o Transform.position, mas no caso, também é auxílio sobre movimentação.
Última edição por Tegh em Qui Out 03, 2019 4:05 pm, editado 1 vez(es) (Motivo da edição : Engano)
Tegh- Avançado
- PONTOS : 2653
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
Vou dar uma estudada no vídeo e aplicar para ver se irá atender meu problema. Muito obrigado amigo!Tegh escreveu:Aqui neste LINK há um vídeo sobre o mesmo, bem simples para movimentação de objetos (tipo seu Player). Espero ter ajudado.
O vídeo não está em português.
Edit: Perdão, acabei mandando um video de termo parecido, o mesmo trabalha com o Transform.position, mas no caso, também é auxílio sobre movimentação.
gersoneson- Membro
- PONTOS : 1919
REPUTAÇÃO : 6
Respeito as regras :
Re: [RESOLVIDO] Alguém sabe como tirar esse impulso do collider ?
RESOLVIDO.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class movimento2 : MonoBehaviour
{
public float speed;
private Rigidbody2D myRigidbody;
private Vector3 change;
void Start()
{
myRigidbody = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update()
{
change = Vector2.zero;
change.x = Input.GetAxisRaw("Horizontal");
change.y = Input.GetAxisRaw("Vertical");
if (change != Vector3.zero)
{
MoveCharacter();
}
}
void MoveCharacter()
{
myRigidbody.MovePosition(
transform.position + change * speed * Time.deltaTime);
}
}
gersoneson- Membro
- PONTOS : 1919
REPUTAÇÃO : 6
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] alguém sabe como fazer um unico Input fazer duas ações?
» alguem sabe como resolver esse problema (oclussion culing)
» Alguem sabe como resolver esse problema? AI nao procurar ela mesma
» Alguém sabe como corrigir esse bug visual na interface do editor da unity?
» ALGUEM SABE RESOLVER ESSE ERRO?
» alguem sabe como resolver esse problema (oclussion culing)
» Alguem sabe como resolver esse problema? AI nao procurar ela mesma
» Alguém sabe como corrigir esse bug visual na interface do editor da unity?
» ALGUEM SABE RESOLVER ESSE ERRO?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos