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

Dúvida sobre o C#

Olá! Gostaria de saber se poderíamos fazer uma das duas opções de código a seguir:


public class ControlaJogador : MonoBehaviour
{

    public float Velocidade = 10;
    Vector3 direcao;
    public LayerMask MascaraChao;
    public GameObject TextoGameOver;
    public bool Vivo = true;
    private Rigidbody rigidbodyJogador; //EXCLUIR ESSA LINHA

    private void Start()
    {
        Time.timeScale = 1;
       Rigidbody rigidbodyJogador = GetComponent<Rigidbody>(); //COLOCAR ESSA LINHA
    }

public class ControlaJogador : MonoBehaviour
{

    public float Velocidade = 10;
    Vector3 direcao;
    public LayerMask MascaraChao;
    public GameObject TextoGameOver;
    public bool Vivo = true;
    private Rigidbody rigidbodyJogador = GetComponent<Rigidbody>(); //COLOCAR ESSA LINHA

    private void Start()
    {
        Time.timeScale = 1;
        rigidbodyJogador = GetComponent<Rigidbody>(); //EXCLUIR ESSA LINHA

CÓDIGO ORIGINAL:


public class ControlaJogador : MonoBehaviour
{

    public float Velocidade = 10;
    Vector3 direcao;
    public LayerMask MascaraChao;
    public GameObject TextoGameOver;
    public bool Vivo = true;
    private Rigidbody rigidbodyJogador; 

    private void Start()
    {
        Time.timeScale = 1;
        rigidbodyJogador = GetComponent<Rigidbody>();

Obrigada desde já!

2 respostas

Outra dúvida! Por que no script da bala o void Start está em private?

public class Bala : MonoBehaviour {

    public float Velocidade = 20;
    private Rigidbody rigidbodyBala;

    private void Start()//AQUI!!!!
    {
        rigidbodyBala = GetComponent<Rigidbody>();
    }

    // Update is called once per frame
    void FixedUpdate()
    {
        rigidbodyBala.MovePosition
            (rigidbodyBala.position +
            (direcao * Velocidade * Time.deltaTime));
    }
solução!

Maria, tudo bem?

Você pode testar essas opções para conferir se elas funcionam.

Mas a primeira não seria legal porque o Ridibody está sendo criado no escopo do Start então ele só existe lá dentro e não poderia ser usado fora, causando erro.

A segunda opção não é possível porque o GetComponent é uma função e não pode ser usada para declarar variáveis porque não é um valor estático, isso causaria erro.

Sobre a bala, tanto faz, quando não colocamos nada o padrão é ser private então já estava private de qualquer jeito.