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

Minha cena não da play

Quando eu abri o meu projeto eu vi que quando eu tentava testar ele (dar play) não ia, e aquela partes de cenas eu percebi que tinha surgido uma cena de mesmo nome da que eu estava trabalhando e ambas estavam piscando um texto escrito: na original (not loading), no clone (is loading), e quando eu saia do modo jogador o clone sumia, logo percebi que era a parte do código do jogador (

SceneManager.LoadScene("jogo zumbi");

) pois toda vez que eu deletava esse código voltava a funcionar menos a parte que esse código deveria fazer. quem quiser me ajudar como resolver esse é o meu código.

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


public class ControlaJogador : MonoBehaviour
{

    public float Velocidade = 10;
    Vector3 direcao;
    public LayerMask MascaraChao;
    public GameObject TextoGamerOver;
    public bool Vivo = true;

    private void Start()
    {
        Time.timeScale = 1;
    }

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

        float eixoX = Input.GetAxis("Horizontal");
        float eixoZ = Input.GetAxis("Vertical");

        direcao = new Vector3(eixoX, 0, eixoZ);


        if (direcao != Vector3.zero)
        {
            GetComponent<Animator>().SetBool("Movendo", true);
        }
        else
        {
            GetComponent<Animator>().SetBool("Movendo", false);
        }

        if (Vivo == false) ;
        {
            if (Input.GetButtonDown("Fire1")) ;
            {
                SceneManager.LoadScene("jogo zumbi");
            }
        }

    }
    void FixedUpdate()
    {
        GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position + (direcao * Velocidade * Time.deltaTime));

        Ray raio = Camera.main.ScreenPointToRay(Input.mousePosition);
        Debug.DrawRay(raio.origin, raio.direction * 100, Color.red);

        RaycastHit impacto;

        if (Physics.Raycast(raio, out impacto, 100, MascaraChao))
        {
            Vector3 posicaoMiraJogador = impacto.point - transform.position;

            posicaoMiraJogador.y = transform.position.y;

            Quaternion novaRotacao = Quaternion.LookRotation(posicaoMiraJogador);

            GetComponent<Rigidbody>().MoveRotation(novaRotacao);
        }
    }
}  


6 respostas

Oi, Daniel, tudo bem?

Aparece algum erro no console? Quando você dá play ele avisa que tem erros?

não, não há nenhum erro no console. totalmente vazio.

Oi, Daniel, você consegue mandar o .zip do projeto pra gente dar uma olhada?

Me explica melhor o que acontece, você dá o play e ele não vai? Ou é o botão de reiniciar? ou alguma outra coisa?

Aqui está o meu projeto

Demorei para responder por causa daquele outro problema que tive com a atualização da unity

solução!

Oi, Daniel, tudo bem?

Notei o erro por aqui tem alguns ifs no seu código que tem um ; depois. Isso faz com que as linhas baixo rodem o tempo todo, então o Play não acontece porque está o tempo todo reiniciando o jogo. Exemplos:

if (Vivo == false) ;
{
    if (Input.GetButtonDown("Fire1")) ;

Esses dois ; no final do IF tem que ser apagados pra linguagem entender que o if continua na linha de baixo.