[TUTORIAL] GameObject.Find ( achar objetos pelo nome )
2 participantes
Página 1 de 1
[TUTORIAL] GameObject.Find ( achar objetos pelo nome )
A função deste comando nada mais é do que achar um objeto pelo seu nome, ( objetos que estejam em cena... Esta função só retorna GameObjects ativos. )
Por motivos de desempenho, recomenda-se não usar esta função cada frame( Update ). Se for necessário, recomenda-se usar o comando GameObject.FindWithTag
Exemplos:
var hand : GameObject;
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
hand = GameObject.Find("Hand");
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
// Hand ao ser procurado não deve possuir Pai em sua hierarquia
hand = GameObject.Find("/Hand");
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
// hand é filho de Arm, e Arm é filho de Monster
// Monster não deve ter pai na hierarquia
hand = GameObject.Find("/Monster/Arm/Hand");
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
// hand é filho de Arm e Arm é filho de Monster
// Monster pode ter um pai na hierarquia
hand = GameObject.Find("Monster/Arm/Hand");
===========================================================================================
Esta função é muito util para achar referencias e é indicado que seja usada somente em Awake, Start, ou comandos fora do Update ( por motivos de desempenho )
Um exemplo prático:
// Encontra a mão já na função Start. e na função Update faz ela girar. com isto não precisa linkar o objeto em uma variavel para ter uma referencia a ele. basta usar o GameObject.Find
function Start () {
hand = GameObject.Find("/Monster/Arm/Hand");
}
function Update () {
hand.transform.Rotate(0, 100 * Time.deltaTime, 0);
}
Por motivos de desempenho, recomenda-se não usar esta função cada frame( Update ). Se for necessário, recomenda-se usar o comando GameObject.FindWithTag
Exemplos:
var hand : GameObject;
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
hand = GameObject.Find("Hand");
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
// Hand ao ser procurado não deve possuir Pai em sua hierarquia
hand = GameObject.Find("/Hand");
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
// hand é filho de Arm, e Arm é filho de Monster
// Monster não deve ter pai na hierarquia
hand = GameObject.Find("/Monster/Arm/Hand");
===========================================================================================
// Isto retorna o Objeto chamado hand na sua cena
// hand é filho de Arm e Arm é filho de Monster
// Monster pode ter um pai na hierarquia
hand = GameObject.Find("Monster/Arm/Hand");
===========================================================================================
Esta função é muito util para achar referencias e é indicado que seja usada somente em Awake, Start, ou comandos fora do Update ( por motivos de desempenho )
Um exemplo prático:
// Encontra a mão já na função Start. e na função Update faz ela girar. com isto não precisa linkar o objeto em uma variavel para ter uma referencia a ele. basta usar o GameObject.Find
function Start () {
hand = GameObject.Find("/Monster/Arm/Hand");
}
function Update () {
hand.transform.Rotate(0, 100 * Time.deltaTime, 0);
}
Re: [TUTORIAL] GameObject.Find ( achar objetos pelo nome )
Ola marcos muito boa explicação, mas poderia me ajudar com uma duvida?
por exemplo: hand = GameObject.Find("/Hand");
acharia o objeto com o nome hand, gostaria de saber se é possível por exemplo que o script procurasse objetos que tem a palavra hand no nome, por exemplo, em certo momento se criaria um objeto com algum nome como: objeto hand. mas o script só o localizasse pela parte hand pois outro objeto com outro nome como: cubo hand poderia ser criado mas o script o acharia da mesma maneira
por exemplo: hand = GameObject.Find("/Hand");
acharia o objeto com o nome hand, gostaria de saber se é possível por exemplo que o script procurasse objetos que tem a palavra hand no nome, por exemplo, em certo momento se criaria um objeto com algum nome como: objeto hand. mas o script só o localizasse pela parte hand pois outro objeto com outro nome como: cubo hand poderia ser criado mas o script o acharia da mesma maneira
otaviopastore12- Iniciante
- PONTOS : 2250
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] GameObject.Find ( achar objetos pelo nome )
otaviopastore12 escreveu:Ola marcos muito boa explicação, mas poderia me ajudar com uma duvida?
por exemplo: hand = GameObject.Find("/Hand");
acharia o objeto com o nome hand, gostaria de saber se é possível por exemplo que o script procurasse objetos que tem a palavra hand no nome, por exemplo, em certo momento se criaria um objeto com algum nome como: objeto hand. mas o script só o localizasse pela parte hand pois outro objeto com outro nome como: cubo hand poderia ser criado mas o script o acharia da mesma maneira
Até tem, da pra separar a string do nome do objeto em vários 'char' e ver se essas arrays de char contem a palavra 'hand'.
mas para que você quer isto exatamente? Fazer algo assim seria bem pesado, principalmente se a hierarquia tiver muitos objetos.
Tópicos semelhantes
» [TUTORIAL] GameObject.FindWithTag ( Achar objetos na cena pelas Tags )
» [Unity 5] Problema com GameObject.Find(string);
» [RESOLVIDO] Pegar filho pelo nome
» [RESOLVIDO] Entrar no If pelo nome da Scene
» Como gravar o nome de um personagem inserido pelo usuário no unity
» [Unity 5] Problema com GameObject.Find(string);
» [RESOLVIDO] Pegar filho pelo nome
» [RESOLVIDO] Entrar no If pelo nome da Scene
» Como gravar o nome de um personagem inserido pelo usuário no unity
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos