Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
2 participantes
Página 1 de 1
Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
Boa tarde pessoal, tudo bem? Bom, estou desenvolvendo um jogo de terror em 3D (inspirado no jogo Granny). E gostaria de saber como faço para criar um Script que faça um objeto interagir com o outro, por exemplo: Eu pego um pé de cabra e uso ela pra quebrar alguma madeira, ou eu pego um código e uso pra abrir alguma coisa na qual eu precise inserir este código.. Eu não tenho ideia de como fazer um Script assim.. Se alguem puder me ajudar, eu agradeço de coração. Meu game já tem animação do inimigo, script para abrir porta, diversas coisas. Só o que me trava é esse problema. 

Re: Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
Tenta colocar uma caixa de colisão nos dois objetos, por exemplo:naoente escreveu:Boa tarde pessoal, tudo bem? Bom, estou desenvolvendo um jogo de terror em 3D (inspirado no jogo Granny). E gostaria de saber como faço para criar um Script que faça um objeto interagir com o outro, por exemplo: Eu pego um pé de cabra e uso ela pra quebrar alguma madeira, ou eu pego um código e uso pra abrir alguma coisa na qual eu precise inserir este código.. Eu não tenho ideia de como fazer um Script assim.. Se alguem puder me ajudar, eu agradeço de coração. Meu game já tem animação do inimigo, script para abrir porta, diversas coisas. Só o que me trava é esse problema.
No pé de cabra, coloque uma caixa de colisão (Collision Box) com a função "gatilho" (Trigger) ativada.
Na madeira vc também vai precisar de algum colisor.
Então você vai precisar de 2 scripts, um pro pé de cabra, e o outro pro objeto de madeira.
No objeto de madeira vc pode usar esse exemplar:
- Código:
public class ObjetoDeMadeira : MonoBehaviour
{
public int Vida = 3; //A quantidade de vezes em que o Pé de cabra precisa colidir para quebrar o objeto
/// <summary>
/// Dar dano ao objeto
/// </summary>
/// <param name="Dano">Quantidade de dano</param>
public void LevarDano(int Dano)
{
Vida -= Dano; //Remove o dano da vida
if (Vida <= 0) //Verifica se a vida está zerada
{
Destruir(); //Invoca a void para destruir a caixa (Fiz em void pra caso você queira que algo aconteça antes de destruir)
}
}
public void Destruir()
{
Destroy(this.gameObject); //Destrói esse objeto
}
}
*(Caso você queira q alguma outra ação dê dano ao objeto vc simplesmente chama a função "LevarDano" + o dano levado.)
No pé de cabra, vc pode usar esse exemplar
- Código:
public class PeDeCabra : MonoBehaviour
{
public int Dano; //O dano do pé de cabra
void OnTriggerEnter(Collider other)
{
ObjetoDeMadeira Objeto = other.GetComponent<ObjetoDeMadeira>(); //Obtem o objeto e o script "ObjetoDeMadeira"
if (Objeto != null) //Verifica se existe o "Objeto" e se ele tem o script "ObjetoDeMadeira"
{
Objeto.LevarDano(Dano); //Atribui o dano usando a variável
}
}
}
Os dois scripts são bem simples e podem ser melhorados adicionando poucas linhas de código, inclusive, o Script do "ObjetoDeMadeira" pode funcionar também para atribuir "Vida" aos GameObjects, assim permitindo sua reutilização em IA, ou no Jogador por exemplo
Re: Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
Boa noite mano, então.. Eu utilizei este Script, coloquei BoxCollider com a função isTrigger ativado tanto no pé de cabra quanto na Madeira, só que mesmo assim não acontece nada.. Eu não consigo coletar o pe de cabra. Oq eu posso estar fazendo errado? Ou deixando de fazer.. Eu sou um pouco lento pra essas coisas pois sou novo na área de C#... Help me pls ;-;AnderGames escreveu:Tenta colocar uma caixa de colisão nos dois objetos, por exemplo:naoente escreveu:Boa tarde pessoal, tudo bem? Bom, estou desenvolvendo um jogo de terror em 3D (inspirado no jogo Granny). E gostaria de saber como faço para criar um Script que faça um objeto interagir com o outro, por exemplo: Eu pego um pé de cabra e uso ela pra quebrar alguma madeira, ou eu pego um código e uso pra abrir alguma coisa na qual eu precise inserir este código.. Eu não tenho ideia de como fazer um Script assim.. Se alguem puder me ajudar, eu agradeço de coração. Meu game já tem animação do inimigo, script para abrir porta, diversas coisas. Só o que me trava é esse problema.
No pé de cabra, coloque uma caixa de colisão (Collision Box) com a função "gatilho" (Trigger) ativada.
Na madeira vc também vai precisar de algum colisor.
Então você vai precisar de 2 scripts, um pro pé de cabra, e o outro pro objeto de madeira.
No objeto de madeira vc pode usar esse exemplar:
- Código:
public class ObjetoDeMadeira : MonoBehaviour
{
public int Vida = 3; //A quantidade de vezes em que o Pé de cabra precisa colidir para quebrar o objeto
/// <summary>
/// Dar dano ao objeto
/// </summary>
/// <param name="Dano">Quantidade de dano</param>
public void LevarDano(int Dano)
{
Vida -= Dano; //Remove o dano da vida
if (Vida <= 0) //Verifica se a vida está zerada
{
Destruir(); //Invoca a void para destruir a caixa (Fiz em void pra caso você queira que algo aconteça antes de destruir)
}
}
public void Destruir()
{
Destroy(this.gameObject); //Destrói esse objeto
}
}
*(Caso você queira q alguma outra ação dê dano ao objeto vc simplesmente chama a função "LevarDano" + o dano levado.)
No pé de cabra, vc pode usar esse exemplar
- Código:
public class PeDeCabra : MonoBehaviour
{
public int Dano; //O dano do pé de cabra
void OnTriggerEnter(Collider other)
{
ObjetoDeMadeira Objeto = other.GetComponent<ObjetoDeMadeira>(); //Obtem o objeto e o script "ObjetoDeMadeira"
if (Objeto != null) //Verifica se existe o "Objeto" e se ele tem o script "ObjetoDeMadeira"
{
Objeto.LevarDano(Dano); //Atribui o dano usando a variável
}
}
}
Os dois scripts são bem simples e podem ser melhorados adicionando poucas linhas de código, inclusive, o Script do "ObjetoDeMadeira" pode funcionar também para atribuir "Vida" aos GameObjects, assim permitindo sua reutilização em IA, ou no Jogador por exemplo
Re: Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
No caso vc quer fazer um sistema pro jogador coletar o pé de cabra?naoente escreveu:Boa noite mano, então.. Eu utilizei este Script, coloquei BoxCollider com a função isTrigger ativado tanto no pé de cabra quanto na Madeira, só que mesmo assim não acontece nada.. Eu não consigo coletar o pe de cabra. Oq eu posso estar fazendo errado? Ou deixando de fazer.. Eu sou um pouco lento pra essas coisas pois sou novo na área de C#... Help me pls ;-;AnderGames escreveu:Tenta colocar uma caixa de colisão nos dois objetos, por exemplo:naoente escreveu:Boa tarde pessoal, tudo bem? Bom, estou desenvolvendo um jogo de terror em 3D (inspirado no jogo Granny). E gostaria de saber como faço para criar um Script que faça um objeto interagir com o outro, por exemplo: Eu pego um pé de cabra e uso ela pra quebrar alguma madeira, ou eu pego um código e uso pra abrir alguma coisa na qual eu precise inserir este código.. Eu não tenho ideia de como fazer um Script assim.. Se alguem puder me ajudar, eu agradeço de coração. Meu game já tem animação do inimigo, script para abrir porta, diversas coisas. Só o que me trava é esse problema.
No pé de cabra, coloque uma caixa de colisão (Collision Box) com a função "gatilho" (Trigger) ativada.
Na madeira vc também vai precisar de algum colisor.
Então você vai precisar de 2 scripts, um pro pé de cabra, e o outro pro objeto de madeira.
No objeto de madeira vc pode usar esse exemplar:
- Código:
public class ObjetoDeMadeira : MonoBehaviour
{
public int Vida = 3; //A quantidade de vezes em que o Pé de cabra precisa colidir para quebrar o objeto
/// <summary>
/// Dar dano ao objeto
/// </summary>
/// <param name="Dano">Quantidade de dano</param>
public void LevarDano(int Dano)
{
Vida -= Dano; //Remove o dano da vida
if (Vida <= 0) //Verifica se a vida está zerada
{
Destruir(); //Invoca a void para destruir a caixa (Fiz em void pra caso você queira que algo aconteça antes de destruir)
}
}
public void Destruir()
{
Destroy(this.gameObject); //Destrói esse objeto
}
}
*(Caso você queira q alguma outra ação dê dano ao objeto vc simplesmente chama a função "LevarDano" + o dano levado.)
No pé de cabra, vc pode usar esse exemplar
- Código:
public class PeDeCabra : MonoBehaviour
{
public int Dano; //O dano do pé de cabra
void OnTriggerEnter(Collider other)
{
ObjetoDeMadeira Objeto = other.GetComponent<ObjetoDeMadeira>(); //Obtem o objeto e o script "ObjetoDeMadeira"
if (Objeto != null) //Verifica se existe o "Objeto" e se ele tem o script "ObjetoDeMadeira"
{
Objeto.LevarDano(Dano); //Atribui o dano usando a variável
}
}
}
Os dois scripts são bem simples e podem ser melhorados adicionando poucas linhas de código, inclusive, o Script do "ObjetoDeMadeira" pode funcionar também para atribuir "Vida" aos GameObjects, assim permitindo sua reutilização em IA, ou no Jogador por exemplo
Re: Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
Sim amigo, que ele colete o Pé de Cabra e destrua a madeira com ele.. Ou apenas solte parafusos para que a madeira possa se soltar e assim cair..AnderGames escreveu:No caso vc quer fazer um sistema pro jogador coletar o pé de cabra?naoente escreveu:Boa noite mano, então.. Eu utilizei este Script, coloquei BoxCollider com a função isTrigger ativado tanto no pé de cabra quanto na Madeira, só que mesmo assim não acontece nada.. Eu não consigo coletar o pe de cabra. Oq eu posso estar fazendo errado? Ou deixando de fazer.. Eu sou um pouco lento pra essas coisas pois sou novo na área de C#... Help me pls ;-;AnderGames escreveu:Tenta colocar uma caixa de colisão nos dois objetos, por exemplo:naoente escreveu:Boa tarde pessoal, tudo bem? Bom, estou desenvolvendo um jogo de terror em 3D (inspirado no jogo Granny). E gostaria de saber como faço para criar um Script que faça um objeto interagir com o outro, por exemplo: Eu pego um pé de cabra e uso ela pra quebrar alguma madeira, ou eu pego um código e uso pra abrir alguma coisa na qual eu precise inserir este código.. Eu não tenho ideia de como fazer um Script assim.. Se alguem puder me ajudar, eu agradeço de coração. Meu game já tem animação do inimigo, script para abrir porta, diversas coisas. Só o que me trava é esse problema.
No pé de cabra, coloque uma caixa de colisão (Collision Box) com a função "gatilho" (Trigger) ativada.
Na madeira vc também vai precisar de algum colisor.
Então você vai precisar de 2 scripts, um pro pé de cabra, e o outro pro objeto de madeira.
No objeto de madeira vc pode usar esse exemplar:
- Código:
public class ObjetoDeMadeira : MonoBehaviour
{
public int Vida = 3; //A quantidade de vezes em que o Pé de cabra precisa colidir para quebrar o objeto
/// <summary>
/// Dar dano ao objeto
/// </summary>
/// <param name="Dano">Quantidade de dano</param>
public void LevarDano(int Dano)
{
Vida -= Dano; //Remove o dano da vida
if (Vida <= 0) //Verifica se a vida está zerada
{
Destruir(); //Invoca a void para destruir a caixa (Fiz em void pra caso você queira que algo aconteça antes de destruir)
}
}
public void Destruir()
{
Destroy(this.gameObject); //Destrói esse objeto
}
}
*(Caso você queira q alguma outra ação dê dano ao objeto vc simplesmente chama a função "LevarDano" + o dano levado.)
No pé de cabra, vc pode usar esse exemplar
- Código:
public class PeDeCabra : MonoBehaviour
{
public int Dano; //O dano do pé de cabra
void OnTriggerEnter(Collider other)
{
ObjetoDeMadeira Objeto = other.GetComponent<ObjetoDeMadeira>(); //Obtem o objeto e o script "ObjetoDeMadeira"
if (Objeto != null) //Verifica se existe o "Objeto" e se ele tem o script "ObjetoDeMadeira"
{
Objeto.LevarDano(Dano); //Atribui o dano usando a variável
}
}
}
Os dois scripts são bem simples e podem ser melhorados adicionando poucas linhas de código, inclusive, o Script do "ObjetoDeMadeira" pode funcionar também para atribuir "Vida" aos GameObjects, assim permitindo sua reutilização em IA, ou no Jogador por exemplo

» Como fazer para um objeto não colidir com um "collider" e o outro objeto si
» Como faço para mudar a posição de um objeto para perto de outro.
» Como fazer o objeto emitido pela partícula ser direcionado até outro objeto
» [RESOLVIDO] como fazer um objeto trocar de cor ao colidir com outro objeto
» [RESOLVIDO] Como fazer um objeto 2D rotacionar em direção a outro objeto
» Como faço para mudar a posição de um objeto para perto de outro.
» Como fazer o objeto emitido pela partícula ser direcionado até outro objeto
» [RESOLVIDO] como fazer um objeto trocar de cor ao colidir com outro objeto
» [RESOLVIDO] Como fazer um objeto 2D rotacionar em direção a outro objeto
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos