Comment obtenir la taille du jeu du parent de l'objet?
J'ai trois enfant les objets du jeu(comme vous pouvez le voir dans l'image ci-dessous avec Rouge, Rose & Bleu). Ils sont les enfants de parents jeu objet Vert.
Je ne sais pas, comment calculer la taille de la société Mère(en Vert) GameObject?
Je suis la création de tous ces objets du jeu au moment de l'exécution à l'aide de ce code:
GameObject CreatePattern(int difficultyLevel)
{
GameObject gameObjectTemp = new GameObject();
SinglePattern singlePattern;
gameObjectTemp = (GameObject) Instantiate(gameObjectTemp);
singlePattern = freeRunDataHandler.GetSinglePatternRandom(1);
GameObject gameObjectSingleObject = null;
foreach (SingleObject singleObject in singlePattern.singleObjectList)
{
gameObjectSingleObject = GetGameObjectByCategory(singleObject.catergory, singleObject.type);
if (gameObjectSingleObject != null)
{
gameObjectSingleObject = (GameObject) Instantiate(gameObjectSingleObject, new Vector3(singleObject.positionX, singleObject.positionY, singleObject.positionZ), Quaternion.identity);
gameObjectSingleObject.transform.localScale = new Vector3(singleObject.length, 1, singleObject.width);
gameObjectSingleObject.transform.parent = gameObjectTemp.transform;
}
}
return gameObjectTemp;
}
Cette fonction renvoie parent(Vert) gameObject après l'ajout de tous les jeunes. Mes Parents(en Vert) n'ont rien attaché à elle même pas de composant(BoxCollider, MeshFilter, MeshRenderer, etc..).
J'avais attaché BoxCollider, MeshRenderer & MeshFilter(Juste pour le test) & j'ai essayé sur parent:
parent.collider.bounds.size.x ----- > box collider
parent.renderer.bounds.size.x ----- > mesh renderer
Mais rien ne fonctionne. Il y retourne 1 ou zéro dans les cas.
Merci de m'aider dans la façon d'obtenir la taille de la société Mère(en Vert) GameObject?
Vous devez vous connecter pour publier un commentaire.
Par la taille de l'entendez-vous les limites? Si oui, il devrait être beaucoup plus simple que vous l'avez fait. Mon code n'est pas testé, je n'ai pas l'Unité pratique, mais cela devrait fonctionner. Il assume le rôle de "parent" est un objet de jeu de votre hiérarchie et qu'il a des "enfants" sous dans la hiérarchie.
Mise à jour:
Alternativement, si vous ne voulez pas un parent avec un moteur de rendu:
Vous avez mentionné ne pas vouloir utiliser un parent/enfant hiérarchie. Si vous n'avez pas aller dans cette voie, vous devez ajouter les "enfants" d'une sorte de tableau ou vous devrez utiliser les GameObject.Méthode Find() pour trouver à chaque enfant par son nom. Si vous nommez quelque chose comme "child_1", "child_2", vous pouvez regarder assez facilement, mais c'est un hack de beaucoup plus simple il suffit de créer un objet parent.
C'est un vieux post, mais j'avais un besoin similaire et a rencontré quelques problèmes en raison d'un peu de got-yas
1er j'ai constaté que mon calculé parent de la boîte est plus large qu'il ne l'avait été et qu'il n'était pas centré tout à fait raison
La cause était que mon objets a eu une rotation appliquée et les limites à ne jamais le faire; donc, avant d'exécuter mes calculs, j'ai d'abord besoin de tourner autour de zéro; puis, une fois calculé que je pouvais restaurer l'original de rotation.
2e dans mon cas, pas tout de mon enfant objets avaient convertisseurs en plus mes enfants peuvent avoir des enfants de leur propre de sorte que je ne veux pas calc centre de transformer des enfants, je voulais l'enfant de rendu des composants.
Ci-dessous est le code résultant, je suis venu avec; des commentaires; pas optimisé, mais le truc, les comptes pour les petits-enfants, si vous et manipule les objets avec une rotation sur démarrer.