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

Erro no código

Olá! Espero que esteja bem!

Ao tentar fazer criação de novos zumbis meu código apresenta um erro que não estou conseguindo concerta-lo: Insira aqui a descrição dessa imagem para ajudar na acessibilidade O código que fiz do meu gerador de zumbis foi:

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

public class Zombie_Generator : MonoBehaviour
{

    float timeCount = 0;
    public GameObject Zombies;
    Vector3 posicao = transform.position;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        timeCount += Time.deltaTime;
        //timeCount = timeCount+Time.deltaTime
        if (timeCount >= 2)
        {
            Instantiate(Zombies, posicao);
            timeCount = 0;
        
        }
    }
}

Tentei guardar o transform.position em uma variável Vector3 mas o erro ainda continuou...

O que posso fazer?

Agradeço desde já!

4 respostas

Oi, Julio, tudo bem?

Vector3 posicao = transform.position;

Essa linha parece um pouco errada porque fora dos métodos a gente tá definindo o valor da variável e o transform.position roda algo no momento do jogo então teria que definir no Unity, mas essa variável parece estar sendo definida sem precisar você poderia fazer:

Instantiate(Zombies, transform.position;);

Bons estudos!

Olá Henrique!

Mudei o código como você mencionou, mas o erro ainda persiste, nem tirado o contador o jogo funciona.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class Zombie_Generator : MonoBehaviour
{

    public GameObject Zombies;

    // Start is called before the first frame update
    private void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        Instantiate(Zombies, transform.position);
    }

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Script dos Zombies:

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

public class Zobies : MonoBehaviour
{
    public GameObject Player;
    public float speedZ;
    public GameObject GameOver_Text;


    private void Start()
    {
        Player = GameObject.FindWithTag("Player");
    }

    // Update is called once per frame
    void Update()
    {

    }

    private void FixedUpdate()
    {
        speedZ = 6;
        float distance = Vector3.Distance(transform.position, Player.transform.position);

        Vector3 direction = Player.transform.position - transform.position;
        //Quaternion = rotação, LookRotation fala para onde o corpo rigido tem que rotacionar em relação a outro objeto
        Quaternion newRotation = Quaternion.LookRotation(direction);
        GetComponent<Rigidbody>().MoveRotation(newRotation);

        if (distance > 2.5)
        {
            GetComponent<Rigidbody>().MovePosition
                (GetComponent<Rigidbody>().position +
                direction.normalized * speedZ * Time.deltaTime);

            GetComponent<Animator>().SetBool("Atacando", false);
        }
        else
        {
            GetComponent<Animator>().SetBool("Atacando", true);
        }

        void OnTriggerEnter(Collider Collision_Object)
        {
            Destroy(Collision_Object.gameObject);
        }
    }
    void Attacks_Player()
    {
        Time.timeScale = 0;
        GameOver_Text.SetActive(true);
        Player.GetComponent<Control_Player>().lived = false;
    }
}

Essa parte é a que mais está me travando pra conseguir continuar

solução!

Não sei se você copiou tudo mas dá uma olhada com carinho nos scripts porque no Zombie_Generator falta fechar uma } e no Zobies tem um OnTriggerEnter estranho dentro do FixedUpdate.

Se não encontrar faz um zip do seu projeto, upload em algum lugar (Google Drive, Dropbox, etc) e coloca o link aqui.

Fala Henrique!

O primeiro eu acabei não copiando tudo mesmo. Mas achei melhor apagar esses scripts e o prefab dos zumbis e fazer de novo corrigindo os erros que você me mostrou, agora deu certo!! Muito obrigado! Consegui terminar tudo agora :)