Problema com a velocidade do objeto
3 participantes
Página 1 de 1
Problema com a velocidade do objeto
Bom, o meu problema e o seguinte:
Eu coloquei para uma animação ser executada quando a velocidade do objeto ser maior q 0.1, isso no animator, e no script eu coloquei animator.SetFloat("Speed", Mathf.Abs(RB.velocity.x));
normal, pq eu sempre fiz assim pra executar animações de andando e correndo, mas o q ta acontecendo é que a animação não esta sendo executada.
eu coloquei pra "debugar" a velocidade do objeto, mas a velocidade fica em zero e só mostra a velocidade q realmente esta quando o objeto colide com outro objeto
eu to usando a versão mas recente da unity (Unity 2018.2.10f1) e a plataforma é para android
Eu coloquei para uma animação ser executada quando a velocidade do objeto ser maior q 0.1, isso no animator, e no script eu coloquei animator.SetFloat("Speed", Mathf.Abs(RB.velocity.x));
normal, pq eu sempre fiz assim pra executar animações de andando e correndo, mas o q ta acontecendo é que a animação não esta sendo executada.
eu coloquei pra "debugar" a velocidade do objeto, mas a velocidade fica em zero e só mostra a velocidade q realmente esta quando o objeto colide com outro objeto
eu to usando a versão mas recente da unity (Unity 2018.2.10f1) e a plataforma é para android
Socates- Membro
- PONTOS : 2404
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: Problema com a velocidade do objeto
Quando que você muda o Speed do player?
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: Problema com a velocidade do objeto
na void UpdateNKKF escreveu:Quando que você muda o Speed do player?
Socates- Membro
- PONTOS : 2404
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: Problema com a velocidade do objeto
Você fez um IF no animator?
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: Problema com a velocidade do objeto
eu acho q o problema nao esta no animator, pq nem no debug a velocidade sai do zero, so quando entra em contado com algum abjetoNKKF escreveu:Você fez um IF no animator?
ah, esse problema so começo depois q atualizei a unity, e esse é um projeto q eu comecei depois q atualize a mesma...
Socates- Membro
- PONTOS : 2404
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: Problema com a velocidade do objeto
teria alguma outra forma de executar a animação quando o objeto estiver em movimento?
Socates- Membro
- PONTOS : 2404
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: Problema com a velocidade do objeto
Estranho.. Era para funcionar, pode mostrar o código que faz o debug e o Set da Speed?
NKKF- ProgramadorMaster
- PONTOS : 4818
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: Problema com a velocidade do objeto
private void Update()NKKF escreveu:Estranho.. Era para funcionar, pode mostrar o código que faz o debug e o Set da Speed?
{
Animator.SetFloat("Speed", (Mathf.Abs(RB.velocity.x) + Mathf.Abs(RB.velocity.z)));
Debug.Log("Speed: " + (Mathf.Abs(RB.velocity.x) + Mathf.Abs(RB.velocity.z)));
}
Socates- Membro
- PONTOS : 2404
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: Problema com a velocidade do objeto
- Código:
Animator anim;
Rigidbody RB;
float speed;
void Start () {
RB = GetComponent<Rigidbody> ();
anim = GetComponent<Animator> ();
}
private void Update(){
speed = RB.velocity.magnitude;
anim.SetFloat("Speed", speed);
Debug.Log("Speed: " + speed);
}
Re: Problema com a velocidade do objeto
MarcosSchultz escreveu:
- Código:
Animator anim;
Rigidbody RB;
float speed;
void Start () {
RB = GetComponent<Rigidbody> ();
anim = GetComponent<Animator> ();
}
private void Update(){
speed = RB.velocity.magnitude;
anim.SetFloat("Speed", speed);
Debug.Log("Speed: " + speed);
}
eu testei e o erro continua, o float "speed" só sai do zero quando o objeto pula ou entra em colisão com outro objeto, mas agora eu acho q eu sei o pq isso esta acorrendo... assim, como é um jogo para android eu coloquei um Joystick virtual e eu acho q do jeito q ele funciona não e colocando força em uma direção, fazendo assim "não ter velocidade" já o pulo e um botão q eu fiz pra coloca força em Y, por isso o objeto só tem velocidade quando pula... nem sei se isso faz sentido e mesmo se fizer nao sei como arrumar, vou coloca os códigos do Joystick pra ver se é isso q eu falei
- Código:
using UnityEngine;
using UnityEngine.EventSystems;
public class Joystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IPointerDownHandler
{
[Header("Options")]
[Range(0f, 2f)] public float handleLimit = 1f;
public JoystickMode joystickMode = JoystickMode.AllAxis;
protected Vector2 inputVector = Vector2.zero;
[Header("Components")]
public RectTransform background;
public RectTransform handle;
public float Horizontal { get { return inputVector.x; } }
public float Vertical { get { return inputVector.y; } }
public Vector2 Direction { get { return new Vector2(Horizontal, Vertical); } }
public virtual void OnDrag(PointerEventData eventData)
{
}
public virtual void OnPointerDown(PointerEventData eventData)
{
}
public virtual void OnPointerUp(PointerEventData eventData)
{
}
protected void ClampJoystick()
{
if (joystickMode == JoystickMode.Horizontal)
inputVector = new Vector2(inputVector.x, 0f);
if (joystickMode == JoystickMode.Vertical)
inputVector = new Vector2(0f, inputVector.y);
}
}
public enum JoystickMode { AllAxis, Horizontal, Vertical}
- Código:
using UnityEngine;
using UnityEngine.EventSystems;
public class FixedJoystick : Joystick
{
Vector2 joystickPosition = Vector2.zero;
private Camera cam = new Camera();
void Start()
{
joystickPosition = RectTransformUtility.WorldToScreenPoint(cam, background.position);
}
public override void OnDrag(PointerEventData eventData)
{
Vector2 direction = eventData.position - joystickPosition;
inputVector = (direction.magnitude > background.sizeDelta.x / 2f) ? direction.normalized : direction / (background.sizeDelta.x / 2f);
ClampJoystick();
handle.anchoredPosition = (inputVector * background.sizeDelta.x / 2f) * handleLimit;
}
public override void OnPointerDown(PointerEventData eventData)
{
OnDrag(eventData);
}
public override void OnPointerUp(PointerEventData eventData)
{
inputVector = Vector2.zero;
handle.anchoredPosition = Vector2.zero;
}
}
os scripts não é meu, eu baixei eles prontos
Socates- Membro
- PONTOS : 2404
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Tópicos semelhantes
» Como fazer o som funcionar de acordo com a velocidade do objeto
» problema com velocidade da patrulha
» Wheel joint 2d e problema com limite de velocidade
» Problema com giro de objeto
» [AJUDA] Aumentar velocidade de um objeto a cada rodada
» problema com velocidade da patrulha
» Wheel joint 2d e problema com limite de velocidade
» Problema com giro de objeto
» [AJUDA] Aumentar velocidade de um objeto a cada rodada
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos