Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] O código mostra erros

Olá vim pedir ajuda pelo suporte pois não consigo de forma alguma fazer este codigo funcionar, estou fazendo a aula sobre o piso infinito e mesmo seguindo restritamente o codigo não consigo fazer dar certo, o unity demonstra ter varios erros enquanto o Visual não demonstra nada e inclusive meu visual não está configurado para trabalhar com Unity e não me mostra as funções do Unity teria como ativa-las? sobre o codigo, abaixo tera anexado os codigos e os erros

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class chao : MonoBehaviour
{
    [SerializeField]
    private float velocidade = 0;

    private Vector3 posiciaoInicial;
    private float tamanhoRealDaImagem;

    private void Awake()
    {
        this.posicaoInicial = this.transform.position;
        this.tamanhoDaImagem = this.GetComponent<SpriteRenderer>().size.x;
        float escala = this.transform.localScale.x;
        this.tamanhoRealDaImagem = tamanhoDaImagem * escala;
    }


    void Update()
    {
        float deslocamento = Mathf.Repeat(this.velocidade * Time.time, this.tamanhoRealDaImagem);
        this.transform.positon = this.posicaoInicial + Vector3.left * deslocamento;

    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

ATUALIZAÇÂO

descobrir que o motivo de aparecer estes erros é por conta que na linha que esta escrita: this.tamanhoDaImagem = this.GetComponent().size.x;

nesta linha ele não consegue implicitar o tipo 'float' para Vector3, e por conta disso o resto do codigo apresenta diversos outrso erros.

2 respostas

E aí, Thiago, tudo tranquilo?

Vamo que vamo, olhei teu código e identifiquei uns pepinos que podem estar causando esses perrengues. Bora resolver um por um.

  1. Erro de Digitação: Na função Awake(), tu bateu uma tecla errada e escreveu this.posiciaoInicial em vez de this.posicaoInicial. Sacou? Só ajusta pra ficar assim:

    private Vector3 posicaoInicial;
    
  2. Erro na Linha do Tamanho da Imagem: Na hora de calcular o tamanho da imagem, deu um vacilo. A linha certa é:

    this.tamanhoDaImagem = this.GetComponent<SpriteRenderer>().bounds.size.x;
    

    Usa bounds.size.x pra pegar o tamanho certo da imagem.

  3. Erro na Linha do Deslocamento: Outro escorregão na linha do deslocamento, onde escreveu this.transform.positon. Ajeita pra ficar assim:

    this.transform.position = this.posicaoInicial + Vector3.left * deslocamento;
    

    Confirma que tá dando o devido valor à propriedade position.

  4. Configuração do Visual Studio para Unity: Se liga nessa dica: ativa as funções do Unity no Visual Studio. Só seguir esses passos:

    • Abre o Visual Studio.
    • Vai em "Extensions" > "Manage Extensions".
    • Procura por "Unity" na busca.
    • Instala o "Visual Studio Tools for Unity".

    Essa extensão faz a mágica de integrar melhor o Visual Studio e o Unity. Show de bola!

Com esses ajustes, teu código já deve dar uma respirada.

solução!

muito obrigado :D

consegui resolver os problemas graças a você.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software