TAG
+2
Guilherme_cj852
willianroma
6 participantes
Página 1 de 1
TAG
Como funciona as Tags? como faço pra achar a Tag de um inimigo no meio da faze quando tenho vários inimigo na mesma?
Última edição por willianroma em Sex Ago 12, 2016 12:12 pm, editado 1 vez(es)
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
Para pegar varios inimigos voce vai ter que utilizar uma array.
- Código:
public GameObject[] enemys;
void Start () {
enemys = GameObject.FindGameObjectsWithTag ("SUATAG"); // Note que estou usando FindGameObjetcsWithTag(esta no plural) pois se trata de uma array
}
Re: TAG
Guilherme_cj852 escreveu:Para pegar varios inimigos voce vai ter que utilizar uma array.
- Código:
public GameObject[] enemys;
void Start () {
enemys = GameObject.FindGameObjectsWithTag ("SUATAG"); // Note que estou usando FindGameObjetcsWithTag(esta no plural) pois se trata de uma array
}
Sabe se tem algum tutorial explicando mais sobre array?
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
willianroma escreveu:Guilherme_cj852 escreveu:Para pegar varios inimigos voce vai ter que utilizar uma array.
- Código:
public GameObject[] enemys;
void Start () {
enemys = GameObject.FindGameObjectsWithTag ("SUATAG"); // Note que estou usando FindGameObjetcsWithTag(esta no plural) pois se trata de uma array
}
Sabe se tem algum tutorial explicando mais sobre array?
Aqui o tutorial:
https://www.youtube.com/watch?v=-mee0meDDvE
fernando14015- Iniciante
- PONTOS : 3492
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
willianroma escreveu:Sabe se tem algum tutorial explicando mais sobre array?
JohnRambo- Moderador
- PONTOS : 5172
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: TAG
Então, eu tava meio que correndo desse negocio de Array mas nao vai ter jeito não.
Digamos que eu tenha 3 inimigos e vou lutar com eles, o que eu preciso pra poder alterar 1 deles por vez? que no caso, seria tirar a vida deles.
o que preciso fazer pra poder acessar a os elementos da array?
Digamos que eu tenha 3 inimigos e vou lutar com eles, o que eu preciso pra poder alterar 1 deles por vez? que no caso, seria tirar a vida deles.
- Código:
public GameObject[] enemy;
void Start() {
enemy = GameObject.FindGameObjectsWithTag ("Enemy");
}
void OnTriggerEnter2D(Collider2D touch) {
if (touch.gameObject.tag == "Enemy") {
enemy.GetComponent<LifeBase> ().ApplyDamage (damage);
}
}
o que preciso fazer pra poder acessar a os elementos da array?
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
Voce precisar criar um id para cada inimigo, e na hora de aplicar o damage é so especificar qual id quer.
- Código:
using UnityEngine;
using System.Collections;
public class teste : MonoBehaviour {
public int idEnemy;
public GameObject[] enemy;
void Start() {
enemy = GameObject.FindGameObjectsWithTag ("Enemy");
}
void OnTriggerEnter2D(Collider2D touch) {
if (touch.gameObject.tag == "Enemy") {
enemy[idEnemy].GetComponent<LifeBase> ().ApplyDamage (damage);
}
}
}
Re: TAG
Você está tentando fazer um sistema de foco? Tipo Assassins Creed, quando você vai lutar, a câmera foca em um inimigo de cada vez. Se for isso, já não vai ser tão simples de fazer.
George Lucas Vieira- Avançado
- PONTOS : 3392
REPUTAÇÃO : 132
Idade : 21
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :
Re: TAG
George Lucas Vieira escreveu:Você está tentando fazer um sistema de foco? Tipo Assassins Creed, quando você vai lutar, a câmera foca em um inimigo de cada vez. Se for isso, já não vai ser tão simples de fazer.
É um jogo 2D, mas como tem varios inimigos eu preciso pega 1 por vez pra não eliminar todos de uma vez só
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
Guilherme_cj852 escreveu:Voce precisar criar um id para cada inimigo, e na hora de aplicar o damage é so especificar qual id quer.
- Código:
using UnityEngine;
using System.Collections;
public class teste : MonoBehaviour {
public int idEnemy;
public GameObject[] enemy;
void Start() {
enemy = GameObject.FindGameObjectsWithTag ("Enemy");
}
void OnTriggerEnter2D(Collider2D touch) {
if (touch.gameObject.tag == "Enemy") {
enemy[idEnemy].GetComponent<LifeBase> ().ApplyDamage (damage);
}
}
}
Vlw, vou ver se consigo fazer aqui
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
e se os inimigos forem iguais? tipo, o mesmo inimigo mas vários dele como se fosse clones, como faço pra diferencia o ID de cada? esse negocio de ID tem algo mais aprofundado que eu posso estudar ou algo do gênero?
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
eu acredito que não haja a necessidade de usar ID
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: TAG
weslleyFx escreveu:eu acredito que não haja a necessidade de usar ID
Então me diga o que eu poderia fazer se n for utilizando ID. O que eu preciso é identificar o inimigo que estou atacando dentre os que estão na fase
Obs: os inimigos são iguais, mesmo prefab.
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
bom eu teria que ver o modo que você esta fazendo para atacar os inimigos o Raycast Collision Trigger ?
para ambos os métodos o conceito e o mesmo basta armazenar a classe em uma variável
para ambos os métodos o conceito e o mesmo basta armazenar a classe em uma variável
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: TAG
to usando o OnTriggerEnter2D
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
- Código:
public float damage;
void OnTriggerEnter2D(Collider2D touch)
{
if (touch.gameObject.GetComponent<LifeBase>() != null)
{
LifeBase enemy = touch.gameObject.GetComponent<LifeBase>();
enemy.ApplyDamage (damage);
}
}
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: TAG
weslleyFx escreveu:
- Código:
public float damage;
void OnTriggerEnter2D(Collider2D touch)
{
if (touch.gameObject.GetComponent<LifeBase>() != null)
{
LifeBase enemy = touch.gameObject.GetComponent<LifeBase>();
enemy.ApplyDamage (damage);
}
}
é, deu certo, vc poderia me explicar como funciona??
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Re: TAG
bom primeiro fazemos uma pergunta simples se existe uma classe chamada LifeBase no objeto isso e perguntado se o valor não e nulo
logo depois armazenamos a classe do objeto que colidiu em uma variavel
depois basta acessar o métodos necessários
- Código:
if (touch.gameObject.GetComponent<LifeBase>() != null)
logo depois armazenamos a classe do objeto que colidiu em uma variavel
- Código:
LifeBase enemy = touch.gameObject.GetComponent<LifeBase>();
depois basta acessar o métodos necessários
- Código:
enemy.ApplyDamage (damage);
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: TAG
Vlw, obrigado pela explicação
willianroma- Avançado
- PONTOS : 3193
REPUTAÇÃO : 0
Respeito as regras :
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos