J'ai l'objet "Unité" avec sous objets "Monstre et Santé J'ai aussi Object Tower qui a un collisionneur de sphères J'ai aussi la fonction OnTriggerEnter (Collider co) dans l'objet Tour qui détecte unité.Obtenir objet enfant de gameObject dans l'unité
Quand il fait que je peux par exemple imprimer le nom « unité » en y accédant co.gameObject.name, ou même co.name, que je suppose est le même.
Mais comment puis-je obtenir le premier sous-objet de l'unité par exemple, je veux dire l'objet Monster, mais pas par son nom mais seulement le PREMIER SOUS-OBJET de l'objet Unité?
MISE À JOUR
En utilisant ce code:
void OnTriggerEnter(Collider co)
{
Debug.Log(co.gameObject.transform.GetChild(0));
}
provoque une exception:
UnityException: Transform child out of bounds
Tower.OnTriggerEnter (UnityEngine.Collider co) (at Assets/Scripts/Tower.cs:19)
MISE À JOUR 2 impression (co.transform.childCount); donne 2
Et c'est la cause correcte je
Unit
>
Monster
HealthBar
sous-objets
Mise à jour 3 Code Tour. en utilisant UnityEngine; en utilisant System.Collections;
public class Tower : MonoBehaviour
{
// The Bullet
public GameObject Bullet;
// Rotation Speed
public float rotationSpeed = 35;
void Update()
{
transform.Rotate(Vector3.up * Time.deltaTime * rotationSpeed, Space.World);
}
void OnTriggerEnter(Collider co)
{
print(co.transform.childCount);
if (co.gameObject.name == "Unit(Clone)")
{
GameObject g = (GameObject)Instantiate(Bullet, transform.position, Quaternion.identity);
g.GetComponent<Bullet>().target = co.transform;
}
}
}
Ce Code permet de gérer une certaine façon d'imprimer deux fois
2
UnityEngine.MonoBehaviour:print(Object)
Tower:OnTriggerEnter(Collider) (at Assets/Scripts/Tower.cs:20)
0
UnityEngine.MonoBehaviour:print(Object)
Tower:OnTriggerEnter(Collider) (at Assets/Scripts/Tower.cs:20)
Hors limites signifie qu'il n'y a pas d'enfants dans la transformation. Vous devrez vérifier cela en premier. Voir http://docs.unity3d.com/ScriptReference/Transform-childCount.html –
J'ai vérifié et je reçois 2 ce qui signifie que j'ai vraiment deux sous-objets. Que puis-je faire maintenant ? – David
Êtes-vous sûr de travailler avec gameobject correct? co dans OnTriggerEnter (Collider co) est l'entité entrante. Montrez-nous tout votre code. –