error CS0029: Cannot implicitly convert type 'float' to 'bool'
3 participantes
Página 1 de 1
error CS0029: Cannot implicitly convert type 'float' to 'bool'
ola estou com um erro no meu script de animaçoes do personagem e esse erro aqui: Assets\scripts\PlayerController.cs(28,21): error CS0029: Cannot implicitly convert type 'float' to 'bool' esse aqui e o script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public Animator animator;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
{
}
{
if (Input.GetKeyDown(KeyCode.Space))
animator.SetBool("chao", false);
else
animator.SetBool("chao", true);
{
if (Input.GetAxis("Horizontal"))
animator.SetBool("andando", true);
else
animator.SetBool("andando", false);
}
}
}
}
DAriousda- Membro
- PONTOS : 1732
REPUTAÇÃO : 8
Respeito as regras :
Re: error CS0029: Cannot implicitly convert type 'float' to 'bool'
Em vez de usar o Input.GetAxis("Horizontal") use o Input.GetAxisRaw("Horizontal").
Editado: Lembrando, há um problema de conversão, uma condição necessita de um tipo bool (true e false) e você está passando float (numérico).
Editado: Lembrando, há um problema de conversão, uma condição necessita de um tipo bool (true e false) e você está passando float (numérico).
Última edição por Antônio T em Sáb Abr 11, 2020 7:45 am, editado 2 vez(es) (Motivo da edição : Informação adicional.)
Antônio T- ProgramadorMaster
- PONTOS : 1847
REPUTAÇÃO : 21
Idade : 23
Áreas de atuação : C# (.NET Framework, Unity), Linguagens Web (Electron) e Lua (TIC 80, Löve 2D); Pixel Arte (Aseprite)
Respeito as regras :
Re: error CS0029: Cannot implicitly convert type 'float' to 'bool'
Muito ObrigadoAntônio T escreveu:Em vez de usar o Input.GetAxis("Horizontal") use o Input.GetAxisRaw("Horizontal").
Editado: Lembrando, há um problema de conversão, uma condição necessita de um tipo bool (true e falar) e você está passando float (numérico).
Você me ajudou muito
DAriousda- Membro
- PONTOS : 1732
REPUTAÇÃO : 8
Respeito as regras :
Re: error CS0029: Cannot implicitly convert type 'float' to 'bool'
Evite criar tópicos sobre a mesma dúvida, seu outro post foi removido.
O erro diz que você está tentando passar um numero como sendo verdadeiro ou falso.
O que você está fazendo: Se numero, seta andando como true;
O que deveria fazer: Se numero for maior/menor/igual a X, seta andando como true;
Nesse caso ficaria asssim:
Aqui eu digo que se o valor de input no eixo horizontal NÃO for 0, quer dizer que estou andando, e posso alterar a variável andando do animator;
Preste atenção onde abre e fecha chaves, você tem varias em locais que não fazem sentido.
O erro diz que você está tentando passar um numero como sendo verdadeiro ou falso.
O que você está fazendo: Se numero, seta andando como true;
O que deveria fazer: Se numero for maior/menor/igual a X, seta andando como true;
Nesse caso ficaria asssim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public Animator animator;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
animator.SetBool("chao", false);
else
animator.SetBool("chao", true);
if (Input.GetAxis("Horizontal") != 0)
animator.SetBool("andando", true);
else
animator.SetBool("andando", false);
}
}
Aqui eu digo que se o valor de input no eixo horizontal NÃO for 0, quer dizer que estou andando, e posso alterar a variável andando do animator;
Preste atenção onde abre e fecha chaves, você tem varias em locais que não fazem sentido.
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: error CS0029: Cannot implicitly convert type 'float' to 'bool'
muito obrigado eu ja tinha tentado fazer isso mas dava uns problemas com as chaves agora que voce disse isso vou ter mas cuidado com elas muito obrigadoFagner escreveu:Evite criar tópicos sobre a mesma dúvida, seu outro post foi removido.
O erro diz que você está tentando passar um numero como sendo verdadeiro ou falso.
O que você está fazendo: Se numero, seta andando como true;
O que deveria fazer: Se numero for maior/menor/igual a X, seta andando como true;
Nesse caso ficaria asssim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
public Animator animator;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
animator.SetBool("chao", false);
else
animator.SetBool("chao", true);
if (Input.GetAxis("Horizontal") != 0)
animator.SetBool("andando", true);
else
animator.SetBool("andando", false);
}
}
Aqui eu digo que se o valor de input no eixo horizontal NÃO for 0, quer dizer que estou andando, e posso alterar a variável andando do animator;
E preste atenção onde abre e fecha chaves, você tem varias em locais que não fazem sentido.
DAriousda- Membro
- PONTOS : 1732
REPUTAÇÃO : 8
Respeito as regras :
Tópicos semelhantes
» Converter Float em Int
» como converter float em bool
» Ajuda ae error CS1525: Unexpected symbol `if' como ajeito esse error no script da lanterna?
» convert byte[] em texture2D
» Float Para Int
» como converter float em bool
» Ajuda ae error CS1525: Unexpected symbol `if' como ajeito esse error no script da lanterna?
» convert byte[] em texture2D
» Float Para Int
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos