como coletar objetos e passar de fase
5 participantes
Página 1 de 1
como coletar objetos e passar de fase
então gostaria de saber como eu faço um script que coleto 5 itens e mudo de fase,por favor estou necessitando desse script urgente me ajude
eduarddantas- Iniciante
- PONTOS : 3402
REPUTAÇÃO : 0
Re: como coletar objetos e passar de fase
Cara, é basicamente bastante facil.
você terá que lançar um raycast para frente, checar a distância e procurar por alguma tag em especial.
Elaborei este sistema simples... acho que é isto que procura:
Basta configurar as variáveis:
DistanciaMaxima: a distancia que você deve estar dos objetos
TagObjetos: a tag dos objetos que podem ser pegos
CenaLoad: a cena a ser carregada
QuantidadeDeItens: O maximo de itens a serem pegos.
Este script deve ter o nome "Coletar" e deve ir na camera do seu jogador.
Lembre-se de adicionar a tag desejada nos objetos coletaveis, e colisor neles também, para que possa coleta-los
você terá que lançar um raycast para frente, checar a distância e procurar por alguma tag em especial.
Elaborei este sistema simples... acho que é isto que procura:
- Código:
using UnityEngine;
using System.Collections;
public class Coletar : MonoBehaviour {
public float DistanciaMaxima = 5.0f;
public string TagObjetos = "OBJETOS";
public string CenaLoad = "CENA";
public int QuantidadeDeItens = 5;
private bool mensagem;
private int numDeItens;
void Start () {
numDeItens = 0;
}
void Update () {
// raycast
RaycastHit PontoDeColisao;
if (Physics.Raycast (transform.position, transform.forward, out PontoDeColisao, 10)) {
if (Vector3.Distance (transform.position, PontoDeColisao.point) <= DistanciaMaxima && PontoDeColisao.transform.gameObject.tag == TagObjetos) {
mensagem = true;
if (Input.GetMouseButtonDown (0)) {
Destroy (PontoDeColisao.transform.gameObject);
numDeItens++;
}
} else {
mensagem = false;
}
} else {
mensagem = false;
}
// load
if (numDeItens >= QuantidadeDeItens) {
Application.LoadLevel(CenaLoad);
}
}
void OnGUI (){
GUI.Label (new Rect(20, 20, 180, 50), "ITENS: " + numDeItens);
if (mensagem == true) {
GUI.Label (new Rect(Screen.width/2-90, Screen.height/2-25, 180, 50), "Pressione o botao direito do mouse para pegar");
}
}
}
Basta configurar as variáveis:
DistanciaMaxima: a distancia que você deve estar dos objetos
TagObjetos: a tag dos objetos que podem ser pegos
CenaLoad: a cena a ser carregada
QuantidadeDeItens: O maximo de itens a serem pegos.
Este script deve ter o nome "Coletar" e deve ir na camera do seu jogador.
Lembre-se de adicionar a tag desejada nos objetos coletaveis, e colisor neles também, para que possa coleta-los
Re: como coletar objetos e passar de fase
Marcos, eu precisava de um scripts igual a este porem com algumas informações adicionais, teria moedas(objetos) que serão coletadas e a cada moeda pega,contaria + 1 na variavel e apareceria na tela = " Pontos : 01.." , e quando pegasse os outro objetos (chave,mapa,bussola,telefone) eles apareceriam no canto da tela ( uma imagem deles ) quando eu pegasse os 4 o teleporte(outro objeto) ativaria , e quando o player colidir nesse objeto o jogo acaba e aparece na tela parabens você conseguiu , igual o menu inicial sabe ?
Pra fazer isso é muito dificil ? como posso fazer esse script??
Pra fazer isso é muito dificil ? como posso fazer esse script??
Orixinals- Iniciante
- PONTOS : 3378
REPUTAÇÃO : 2
Respeito as regras :
Re: como coletar objetos e passar de fase
é bastante facil de fazer... é basicamente este script ali, a base complicada já está toda feita.
O que você tem que fazer é só adaptar o script para o seu jogo, adicionando variaveis e tags...
O que você tem que fazer é só adaptar o script para o seu jogo, adicionando variaveis e tags...
Re: como coletar objetos e passar de fase
Sou muito leigo a respeito de programação e unity !!! , preciso entregar este jogo até terça feira e até agora nn consegui fazer a metade funcionar :/ se você puder me ajudar eu agradeço muito , realmente to perdido e não sei o que fazer
Orixinals- Iniciante
- PONTOS : 3378
REPUTAÇÃO : 2
Respeito as regras :
Re: como coletar objetos e passar de fase
Não posso ajudar em projetos particulares
Não ajudo ninguém em projetos particulares por que se eu faço isso, a demanda cresce demais. Então para evitar alguns transtornos eu sigo algumas regrinhas desse tipo...
Não ajudo ninguém em projetos particulares por que se eu faço isso, a demanda cresce demais. Então para evitar alguns transtornos eu sigo algumas regrinhas desse tipo...
Re: como coletar objetos e passar de fase
Ei cara aqui não está aparecendo pra coletar o objeto coloquei a tag e o oque precisava,pode me ajudar???
BloodyBS- Iniciante
- PONTOS : 3260
REPUTAÇÃO : 10
Áreas de atuação : Studing Web Developer
C#
Python
Respeito as regras :
Re: como coletar objetos e passar de fase
BloodyBS escreveu:Ei cara aqui não está aparecendo pra coletar o objeto coloquei a tag e o oque precisava,pode me ajudar???
Especifique o problema, poste o seu código, poste prints
Re: como coletar objetos e passar de fase
O código é o seguinte:
using UnityEngine;
using System.Collections;
public class Coletar : MonoBehaviour {
public float DistanciaMaxima = 5.0f;
public string TagObjetos = "statue";
public string CenaLoad = "Fim";
public int QuantidadeDeItens = 6;
private bool mensagem;
private int numDeItens;
void Start () {
numDeItens = 0;
}
void Update () {
// raycast
RaycastHit PontoDeColisao;
if (Physics.Raycast (transform.position, transform.forward, out PontoDeColisao, 10)) {
if (Vector3.Distance (transform.position, PontoDeColisao.point) <= DistanciaMaxima && PontoDeColisao.transform.gameObject.tag == TagObjetos) {
mensagem = true;
if (Input.GetMouseButtonDown (0)) {
Destroy (PontoDeColisao.transform.gameObject);
numDeItens++;
}
} else {
mensagem = false;
}
} else {
mensagem = false;
}
// load
if (numDeItens >= QuantidadeDeItens) {
Application.LoadLevel(CenaLoad);
}
}
void OnGUI (){
GUI.Label (new Rect(20, 20, 180, 50), "Estátuas: " + numDeItens);
if (mensagem == true) {
GUI.Label (new Rect(Screen.width/2-90, Screen.height/2-25, 180, 50), "Pressione o botao direito do mouse para pegar");
}
}
}
Eu coloquei do jeito que você disse no tópico,até chega aparecer o número de itens coletados mas não consigo coletar o objeto que coloquei
using UnityEngine;
using System.Collections;
public class Coletar : MonoBehaviour {
public float DistanciaMaxima = 5.0f;
public string TagObjetos = "statue";
public string CenaLoad = "Fim";
public int QuantidadeDeItens = 6;
private bool mensagem;
private int numDeItens;
void Start () {
numDeItens = 0;
}
void Update () {
// raycast
RaycastHit PontoDeColisao;
if (Physics.Raycast (transform.position, transform.forward, out PontoDeColisao, 10)) {
if (Vector3.Distance (transform.position, PontoDeColisao.point) <= DistanciaMaxima && PontoDeColisao.transform.gameObject.tag == TagObjetos) {
mensagem = true;
if (Input.GetMouseButtonDown (0)) {
Destroy (PontoDeColisao.transform.gameObject);
numDeItens++;
}
} else {
mensagem = false;
}
} else {
mensagem = false;
}
// load
if (numDeItens >= QuantidadeDeItens) {
Application.LoadLevel(CenaLoad);
}
}
void OnGUI (){
GUI.Label (new Rect(20, 20, 180, 50), "Estátuas: " + numDeItens);
if (mensagem == true) {
GUI.Label (new Rect(Screen.width/2-90, Screen.height/2-25, 180, 50), "Pressione o botao direito do mouse para pegar");
}
}
}
Eu coloquei do jeito que você disse no tópico,até chega aparecer o número de itens coletados mas não consigo coletar o objeto que coloquei
BloodyBS- Iniciante
- PONTOS : 3260
REPUTAÇÃO : 10
Áreas de atuação : Studing Web Developer
C#
Python
Respeito as regras :
Re: como coletar objetos e passar de fase
Vc colocou public string TagObjetos = "statue"; nao seria Gameobject aqui ? ai vc linka o objeto
Chilinger- MembroAvançado
- PONTOS : 4092
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: como coletar objetos e passar de fase
Consegui resolver aqui já amigo,só preciso de outra ajuda,quando eu coloco o IA no inimigo aparece o seguinte "error array out range" ou algo do tipo,aparece esse erro e só fica na pausa não inicia o jogo
BloodyBS- Iniciante
- PONTOS : 3260
REPUTAÇÃO : 10
Áreas de atuação : Studing Web Developer
C#
Python
Respeito as regras :
Re: como coletar objetos e passar de fase
BloodyBS escreveu:Consegui resolver aqui já amigo,só preciso de outra ajuda,quando eu coloco o IA no inimigo aparece o seguinte "error array out range" ou algo do tipo,aparece esse erro e só fica na pausa não inicia o jogo
AI inimigo??? está tratando de outro script???
Se for, seria bom criar um tópico específico para a dúvida...
No mais, acredito que possa ser a falta de elementos na array...
Re: como coletar objetos e passar de fase
Ata,vlw pela ajuda mano!
BloodyBS- Iniciante
- PONTOS : 3260
REPUTAÇÃO : 10
Áreas de atuação : Studing Web Developer
C#
Python
Respeito as regras :
Tópicos semelhantes
» Duvida passar de fase com objetos
» Como fazer um sistema de conetar objetos 3d ao passar proximo de um Trigger?
» duvida coletar itens e mudar de fase
» Passar de fase!
» [RESOLVIDO] Passar de fase
» Como fazer um sistema de conetar objetos 3d ao passar proximo de um Trigger?
» duvida coletar itens e mudar de fase
» Passar de fase!
» [RESOLVIDO] Passar de fase
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos