0
我有這塊代碼。我需要迭代每個子對象,但是子對象可以有更多的子對象。當程序第一次運行時調用Awake()
方法。所以,我在問如何構建一個迭代器來檢查孩子內是否有孩子。然後對這些孩子運行ResizeMeshCollection(MeshFilter[] collection)
,直到不再有子對象。迭代通過多級子對象
public class ResizeAsset : MonoBehaviour {
void Awake()
{
ResizeMeshCollection(this.GetComponentsInChildren<MeshFilter>());
}
void ResizeMeshCollection(MeshFilter[] collection)
{
foreach (MeshFilter mf in collection)
{
mf.GetComponent<MeshFilter>();
Transform tf = mf.GetComponent<Transform>();
/// Resize logic here
/// check if there are children under this child object,
/// Run ResizeMeshCollection() on
/// all children until there are no more.
我敢肯定,我不想在自身運行ResizeMeshCollection(),我也不知道這是可能的,但我只是無法弄清楚如何做到這一點。
標籤[tag:unity]的第一個標記是「不要在關於UNITY GAME ENGINE的問題上使用(使用:[tag:unity3d]來代替)」 –
http://www.hacker-dictionary.com/條款/遞歸 –
那麼,有沒有這樣做?我知道調用內部方法可能會產生一些不良影響 –