1
resposta

vector 3 não pode ser atribuido

na programação dos obstáculos tenho o seguinte codigo:

public class obstaculos : MonoBehaviour {

void Update()
{
  this.transform.Translate(Vector3.left * 0.5);
}

}

porem, a unity indentificou um erro:

[21:04:43] Assets\Scenes\codigos\obstaculos.cs(10,32): error CS0019: Operator '*' cannot be applied to operands of type 'Vector3' and 'double'

pesquisei o erro e parece que o vector3 não pode ser atribuido ao left, porem estou seguindo exatamente as instruções do professor.

1 resposta

Olá Isabella, tudo bem? Espero que sim!

O erro que você está enfrentando ocorre porque você está tentando multiplicar um Vector3 pelo valor 0.5, que é do tipo double. O operador "*" não pode ser aplicado a um Vector3 e um double.

Para corrigir esse erro, você pode usar o método "normalized" do Vector3 para obter um vetor de direção normalizado e, em seguida, multiplicá-lo pelo valor desejado. Aqui está como ficaria o seu código corrigido:

public class obstaculos : MonoBehaviour
{
    void Update()
    {
        Vector3 direcao = Vector3.left.normalized;
        this.transform.Translate(direcao * 0.5f);
    }
}

Dessa forma, você está obtendo o vetor de direção normalizado para a esquerda e multiplicando-o pelo valor desejado (0.5f). Certifique-se de usar "0.5f" em vez de "0.5" para garantir que o valor seja tratado como um float.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição.

Abraços e bons estudos!