Objeto não continua associado
2 participantes
Página 1 de 1
Objeto não continua associado
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EntregaTrigger : MonoBehaviour
{
public EntregaGas _script;
public GameObject nextbutton, entregavisual, controlesvisual, carrogas, PlayerCar;
public int function = 0;
private GameObject CarGas;
private void OnTriggerEnter(Collider collision) {
PlayerCar = GameObject.FindGameObjectWithTag("PlayerCar");
switch (function)
{
case 0:
nextbutton.SetActive(true);
break;
case 1:
entregavisual.SetActive(true);
Time.timeScale = 0f;
controlesvisual.SetActive(false);
break;
case 2:
terminar();
break;
}
}
public void recusar(){
entregavisual.SetActive(false);
Time.timeScale = 1f;
controlesvisual.SetActive(true);
}
public void aceitar(){
function = 2;
PlayerCar.SetActive(false);
entregavisual.SetActive(false);
Time.timeScale = 1f;
controlesvisual.SetActive(true);
CarGas = Instantiate(carrogas, new Vector3(-373.61f, 0.31f, 248.25f), Quaternion.Euler(0, -135, 0)) as GameObject;
_script.firstpoint();
}
public void terminar(){
function = 1;
Destroy(CarGas);
PlayerCar.SetActive(true);
_script.terminar();
}
}
ele funciona normalmente na parte de desativar o carro do player e ativar o carro da missão, porém na hora de apagar o carro da missão e ativar o carro do player ele me dá esse erro:
thiagograssi- MembroAvançado
- PONTOS : 3374
REPUTAÇÃO : 43
Idade : 20
Áreas de atuação : Photoshop;
SketchUp;
C#(Learning);
Respeito as regras :
Re: Objeto não continua associado
Finalmente um jogo BR que não usa o RCC como física de veículos, já é um ótimo começo.
Evita criar e destruir os objetos, marca o Rigidbody do carro do gás como Kinematic e move ele pra alguma posição abaixo do mapa.
"function" não é um nome bom pra variável, sugiro renomear pra acaoAtual ou algo do tipo.
Sobre sua dúvida, ao entrar no trigger com o carro do gás, você tenta encontrar o carro do player está desativado, logo, ele não é encontrado pelo findWithTag. por isso ele fica nulo quando você chama o Terminar().
Faça o caminho contrário, deixe um campo publico pro carro nesse script e faça o carro do player se colocar nele ao iniciar. Logo, você sempre vai ter uma referência ao carro do player e não vai precisar ficar usando o Find toda vez que entrar no trigger.
Evita criar e destruir os objetos, marca o Rigidbody do carro do gás como Kinematic e move ele pra alguma posição abaixo do mapa.
"function" não é um nome bom pra variável, sugiro renomear pra acaoAtual ou algo do tipo.
Sobre sua dúvida, ao entrar no trigger com o carro do gás, você tenta encontrar o carro do player está desativado, logo, ele não é encontrado pelo findWithTag. por isso ele fica nulo quando você chama o Terminar().
Faça o caminho contrário, deixe um campo publico pro carro nesse script e faça o carro do player se colocar nele ao iniciar. Logo, você sempre vai ter uma referência ao carro do player e não vai precisar ficar usando o Find toda vez que entrar no trigger.
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Re: Objeto não continua associado
Entendo, no meu caso não consigo fazer ser um campo público, pois o objeto pode ser alterado, já que tenho um script de concessionária que permite o player comprar carros diferentes.
mas lendo oq vc disse, eu percebi que isso acontecia pq eu deixei o comando de puxar o carro antes dos IF que checa as funções, então se eu puxar o carro na função do if que é a unica possivel a detectar o carrro ele mantem, então ficou assim:
eu to usando esse car controller pq é facil colocar os controles mobiles, mas to querendo trocar pq o sistema de som é mt ruim, e não tem a opção de iluminar faróis no caso de freiar, ré etc..
enfim, obrigado pela ajuda, consegui resolver, caso tenha alguma dica, será bem vinda
mas lendo oq vc disse, eu percebi que isso acontecia pq eu deixei o comando de puxar o carro antes dos IF que checa as funções, então se eu puxar o carro na função do if que é a unica possivel a detectar o carrro ele mantem, então ficou assim:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EntregaTrigger : MonoBehaviour
{
public EntregaGas _script;
public GameObject nextbutton, entregavisual, controlesvisual, carrogas, PlayerCar;
public int acaoAtual = 0;
private GameObject CarGas;
private void OnTriggerEnter(Collider collision) {
switch (acaoAtual)
{
case 0:
nextbutton.SetActive(true);
break;
case 1:
PlayerCar = GameObject.FindGameObjectWithTag("PlayerCar");
entregavisual.SetActive(true);
Time.timeScale = 0f;
controlesvisual.SetActive(false);
break;
case 2:
terminar();
break;
}
}
public void recusar(){
entregavisual.SetActive(false);
Time.timeScale = 1f;
controlesvisual.SetActive(true);
}
public void aceitar(){
acaoAtual = 2;
PlayerCar.SetActive(false);
entregavisual.SetActive(false);
Time.timeScale = 1f;
controlesvisual.SetActive(true);
CarGas = Instantiate(carrogas, new Vector3(-373.61f, 0.31f, 248.25f), Quaternion.Euler(0, -135, 0)) as GameObject;
_script.firstpoint();
}
public void terminar(){
acaoAtual = 1;
Destroy(CarGas);
PlayerCar.SetActive(true);
_script.terminar();
}
}
eu to usando esse car controller pq é facil colocar os controles mobiles, mas to querendo trocar pq o sistema de som é mt ruim, e não tem a opção de iluminar faróis no caso de freiar, ré etc..
enfim, obrigado pela ajuda, consegui resolver, caso tenha alguma dica, será bem vinda
thiagograssi- MembroAvançado
- PONTOS : 3374
REPUTAÇÃO : 43
Idade : 20
Áreas de atuação : Photoshop;
SketchUp;
C#(Learning);
Respeito as regras :
Re: Objeto não continua associado
O problema das luzes é tranquilo de resolver, querendo ou não você vai precisar fazer isso manualmente pois os assets que tem isso por padrão, usam luzes de verdade, o que nem é recomendado pra android, seu jogo já parece ter uma quantidade considerável de polígonos, se colocar luzes então... Pro farol use um projector, para as luzes de freio, use um plano com material aditivo embaixo do farol, já é suficiente pra simular e é como a maioria faz.
Sobre os sons, literalmente todos os assets da loja usam o mesmo esquema, tocam de 1 a 3 faixas de audio simulando o rpm em baixa, media e alta, variando o pitch e o volume... não tem nenhum que faça milagre, é mais questão do arquivo de audio ter qualidade do que a forma como é tocado. O RCC parece um liquidificador que dá pipoco em toda troca de marcha, desliza feito sabão e é complicado de conseguir um comportamento bom de aceleração, ou é manco ou é carro de arrancada, não tem meio termo. Eu ficaria no que você está, só implementaria isso das luzes e tentaria achar uns sons decentes pro motor.
Sobre os sons, literalmente todos os assets da loja usam o mesmo esquema, tocam de 1 a 3 faixas de audio simulando o rpm em baixa, media e alta, variando o pitch e o volume... não tem nenhum que faça milagre, é mais questão do arquivo de audio ter qualidade do que a forma como é tocado. O RCC parece um liquidificador que dá pipoco em toda troca de marcha, desliza feito sabão e é complicado de conseguir um comportamento bom de aceleração, ou é manco ou é carro de arrancada, não tem meio termo. Eu ficaria no que você está, só implementaria isso das luzes e tentaria achar uns sons decentes pro motor.
SteveRogers- Instrutor
- PONTOS : 2673
REPUTAÇÃO : 156
Respeito as regras :
Tópicos semelhantes
» Objeto associado a dois pontos fixos
» Rotação continua de objeto 3D
» Verificar se o angulo continua igual
» Como criar um sistema de papeis que podem ser lidos!?
» Script continua funcionando mesmo depois de desabilitado
» Rotação continua de objeto 3D
» Verificar se o angulo continua igual
» Como criar um sistema de papeis que podem ser lidos!?
» Script continua funcionando mesmo depois de desabilitado
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos