[RESOLVIDO] Estes scripts estao corretos? Podia fazer melhor?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Estes scripts estao corretos? Podia fazer melhor?
Olá a todos!
Estou a tentar fazer um jogo de terror de FPS.
Sou meio noob ainda em c sharp (tenho 13 anos), mas estou a tentar aprender.
Coloquei para o jogador ter de apanhar 10 chaves para abrir uma porta e passar do level. Aí eu botei na void on collision enter para somar as keys (chaves). No jogador:
E nas chaves:
Mas tambem tem outra feature para o jogador colidir com um cubo e ganhar munição. Entao eu coloquei o cubo como on trigger enter e setei para trigger o box collider dele. Mas a variavel da munição estava na arma e nao no player, entao eu coloquei para quando ele colidir com a AK47 se destruisse, e na AK47, quando colidisse, ia adicionar munição.
E na AK:
Setei o colisor da AK para is trigger e testei o jogo. Tudo funcionou, mas no dia seguinte fui abrir o projeto e testei novamente e nao funcionava mais. Parece que o colisor da AK47 estava a colidir com o colisor das chaves e nao deixava apanhar elas (a nao ser que o jogador esteja de costas). Fui ver o colisor da arma e ainda estava como is trigger.
Alem disso a arma sumiu. Eu coloquei ela dentro de um game object. Dentro do game object tambem estava uma lanterna que eu encaixei na arma. A lanterna aparece quando dou play, mas a arma nao. Tanto a lanterna como a arma estao em uma layer acima das outras, para nao entrarem pela parede a dentro (vi em um dos tutoriais do marcos). E isso funcionava direitinho, mas deixou de dar hoje. O colisor da arma esta no gameobject, nao na arma em si, nem na lanterna.
Estou bem confuso, porque fui verificar e tudo estava correto, como eu vira no tutorial.
Espero que alguém me possa ajudar.
Obrigado pela atenção.
Eu tinha enviado esta mensagem como privada ao Marcos. Desculpa, nao tinha usado nunca o forum antes
Estou a tentar fazer um jogo de terror de FPS.
Sou meio noob ainda em c sharp (tenho 13 anos), mas estou a tentar aprender.
Coloquei para o jogador ter de apanhar 10 chaves para abrir uma porta e passar do level. Aí eu botei na void on collision enter para somar as keys (chaves). No jogador:
- Código:
void OnCollisionEnter(Collision col)
{
if (col.gameObject.tag == "Key")
{
col.gameObject.SetActive(false);
StartCoroutine ("KeyPickUpControl");
keys += 1;
}
}
IEnumerator KeyPickUpControl()
{
yield return new WaitForSeconds(1);
}
E nas chaves:
- Código:
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Player")
{
Destroy(gameObject);
}
}
Mas tambem tem outra feature para o jogador colidir com um cubo e ganhar munição. Entao eu coloquei o cubo como on trigger enter e setei para trigger o box collider dele. Mas a variavel da munição estava na arma e nao no player, entao eu coloquei para quando ele colidir com a AK47 se destruisse, e na AK47, quando colidisse, ia adicionar munição.
- Código:
private void OnTriggerEnter(Collider other)
{
if (other.CompareTag("AK"))
{
Destroy(gameObject);
}
}
E na AK:
- Código:
void OnTriggerEnter(Collider col)
{
if (col.CompareTag("Ammo"))
{
col.gameObject.SetActive(false);
StartCoroutine("AmmoPickUpControl");
ammo = ammo + 30;
}
}
IEnumerator AmmoPickUpControl()
{
yield return new WaitForSeconds(1);
}
Setei o colisor da AK para is trigger e testei o jogo. Tudo funcionou, mas no dia seguinte fui abrir o projeto e testei novamente e nao funcionava mais. Parece que o colisor da AK47 estava a colidir com o colisor das chaves e nao deixava apanhar elas (a nao ser que o jogador esteja de costas). Fui ver o colisor da arma e ainda estava como is trigger.
Alem disso a arma sumiu. Eu coloquei ela dentro de um game object. Dentro do game object tambem estava uma lanterna que eu encaixei na arma. A lanterna aparece quando dou play, mas a arma nao. Tanto a lanterna como a arma estao em uma layer acima das outras, para nao entrarem pela parede a dentro (vi em um dos tutoriais do marcos). E isso funcionava direitinho, mas deixou de dar hoje. O colisor da arma esta no gameobject, nao na arma em si, nem na lanterna.
Estou bem confuso, porque fui verificar e tudo estava correto, como eu vira no tutorial.
Espero que alguém me possa ajudar.
Obrigado pela atenção.
Eu tinha enviado esta mensagem como privada ao Marcos. Desculpa, nao tinha usado nunca o forum antes
ShutUpIAmSnow- Iniciante
- PONTOS : 1742
REPUTAÇÃO : 0
Respeito as regras :
ShutUpIAmSnow- Iniciante
- PONTOS : 1742
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Acessar Scripts de Objetos Que Estão Como "DontDestroyOnLoad()" ?
» [RESOLVIDO] AS ÁRVORES DO MEU UNITY ESTÃO ROSAS, O QUE FAZER!!???
» [RESOLVIDO] Qual a melhor forma de fazer a movimentação em terceira pessoa?
» [RESOLVIDO] Unity - Áudios estão emitindo som só Depois do Botão ser solto
» Feixe de luz - melhor forma de fazer
» [RESOLVIDO] AS ÁRVORES DO MEU UNITY ESTÃO ROSAS, O QUE FAZER!!???
» [RESOLVIDO] Qual a melhor forma de fazer a movimentação em terceira pessoa?
» [RESOLVIDO] Unity - Áudios estão emitindo som só Depois do Botão ser solto
» Feixe de luz - melhor forma de fazer
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos