2014-09-10 13 views
11

tôi muốn nói somethings như ..Tôi làm cách nào để tìm thấy trò chơi con?

Gameobject.find(child gameobject of specific parent Gameobject) 

bất cứ ai có thể giúp tôi. cảm ơn!

+0

Nhìn này http://answers.unity3d.com/questions/10417/how-can-i-access-the -children-of-a-transform.html – Imapler

+0

[Thậm chí còn có chức năng tìm kiếm trên biến đổi] (http://docs.unity3d.com/ScriptReference/Transform.Find.html) –

Trả lời

22

GameObject.Find sẽ tìm kiếm một trò chơi trong cảnh. Để tìm kiếm một trò chơi từ cha mẹ, hãy sử dụng Transform.

Có 2 cách để làm việc đó:

  1. transform.Find("childname")
  2. transform.FindChild("childname")

Các tùy chọn thứ 2 bị phản đối nhưng vẫn chức năng, vì vậy bạn muốn sử dụng tốt hơn các tùy chọn 1st.

+2

khi tôi đang thử mã này.i tìm thấy một lỗi như ... "Không thể chuyển đổi kiểu' UnityEngine.Transform 'thành 'UnityEngine.GameObject" –

+3

đó là vì 'Transform.find (" childname ")' trả về một kiểu Transform. Nếu bạn muốn lấy gameobject, chỉ cần thêm .gameObject vào cuối: 'Transform.find (" childname "). GameObject' –

+0

Tôi đã thay đổi user3164248 thành câu trả lời này (chỉ để tránh nhầm lẫn). –

2

Khắc phục câu trả lời của Jay Kazama. Những câu trả lời đúng là:

  1. transform.Find ("childname")
  2. transform.FindChild ("childname")

Với t nhỏ (tài sản biến đổi, không lớp Transform).

+1

Tôi đã thay đổi câu trả lời của Kazama để bao gồm các bản sửa lỗi này. –

0

Nếu một GameObject Bạn đang tìm kiếm trong hệ thống phân cấp nó phải như:

transform.Find("head/eyes") 
transform.FindChild("head/eyes") 
Các vấn đề liên quan