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

Como fazer para aparecer a peça que será instanciada

Estou fazendo um jogo de tetris misturado com ddtank e o que eu quero saber é como fazer para aparecer a peça de tetris antes dela ser instanciada, eu tentei colocar numa lista mas não consegui passar os valores da array que tem valores randômicos para essa lista.

Segue o código que faz a peça ser gerada e lançada:

private Rigidbody2D disparo;

    public GameObject[] Peca;
    public GameObject[] InstancePeca;
   //public List<GameObject> mostraPecas;
    private GameObject pecaAleatoria;

    int index;
    public float contador = 0;

    void Update()
    {
        lancamento();
    }

    void lancamento()
    {
        index = Random.Range(0, Peca.Length);
        contador += Time.deltaTime;
        if (Input.GetButton("Fire1") && contador > 1)
        {
            pecaAleatoria = Instantiate(Peca[index], transform.position, Quaternion.identity);
            disparo = pecaAleatoria.GetComponent<Rigidbody2D>();
            disparo.AddForce(new Vector2(Input.mousePosition.x * 1.5f, Input.mousePosition.y));
            contador = 0;
        }
    }
3 respostas

Boa tarde, José! Como vai?

Pelo que eu entendi do seu código, vc define a próxima peça a ser lançada gerando um número aleatório e depois, com base nesse index, pega a peça correspondente de um array fazendo Peca[index]. Estou certo?

Se for isso mesmo, vc pode tentar algo assim:

void Update()
{
        index = Random.Range(0, Peca.Length);
        GameObject proximaPeca = Peca[index];
        mostraProximaPeca(proximaPeca);
        lancamento(proximaPeca);
}

void lancamento(GameObject proximaPeca)
{
        contador += Time.deltaTime;
        if (Input.GetButton("Fire1") && contador > 1)
        {
            pecaAleatoria = Instantiate(proximaPeca, transform.position, Quaternion.identity);
            disparo = pecaAleatoria.GetComponent<Rigidbody2D>();
            disparo.AddForce(new Vector2(Input.mousePosition.x * 1.5f, Input.mousePosition.y));
            contador = 0;
        }
}

Aí com esse novo método mostraPeca() vc pode receber uma peça qualquer e mostrar ela onde vc quiser!

Faz sentido pra vc? O que vc acha? Qualquer coisa é só falar!

Uma pergunta importante: Vc está usando C# como linguagem de programação?

Grande abraço e bons estudos, meu aluno!

Certo, mas como eu farei exatamente para mostra-la? eu guardei os valores no método e como farei pra mostra-los?

solução!

Opa, José!

Pelo que vc falou no seu post inicial, me parece que vc já consegue mostrar a peça no momento que ela entra no jogo. Sendo assim, o processo para mostrar a peça vc já conhece ao que me parece! É apenas seguir esse mesmo processo!