Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se
1
resposta

transform.position dando erro

Estou tentando rodar o script da movimentação do piso, mas está surgindo o seguinte erro: transform.position assign attempt for 'chao' is not valid. Input position is { NaN, NaN, NaN }.

Código:

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

public class Piso : MonoBehaviour {


    [SerializeField]
    private float velocidade;

    private Vector3 posicaoInicial;
    private float tamanhoRealDaImagem;

    private void awake(){

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

    void Update () {

        float deslocamento = Mathf.Repeat(this.velocidade * Time.time, tamanhoRealDaImagem);
        this.transform.position = this.posicaoInicial + Vector3.left * deslocamento;        
    }
}
1 resposta

Bom dia Mateus, tudo bom?

Você acabou criando uma variável local float tamanhoRealDaImagem e atribuindo nela o valor que deveria ser atribuído na propriedade this.tamanhoRealDaImagem.

Com isso a propriedade this.tamanhoRealDaImagem nunca foi atribuída e na hora de fazer a multiplicação para o deslocamento o computador não sabe que valor utilizar e acaba retornarno NaN (not a number).

Entendeu?

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