NGUI Sprite 和 Label 改变Layer 或父物体后 未更新深度问题

using UnityEngine;
using System.Collections.Generic;

/// <summary>
/// Sprite is a textured element in the UI hierarchy.
/// </summary>
/// 
public partial class UISprite : UIBasicSprite
{
public void OnInitNew()
{
OnInit();
}
}

 


///
<summary> /// Auto-upgrade. /// </summary> protected override void OnInit () { Debug.Log("Chu SHiHua"); if (!mFillCenter) { mFillCenter = true; centerType = AdvancedType.Invisible; #if UNITY_EDITOR NGUITools.SetDirty(this); #endif } base.OnInit(); }

 

 public void OnInit2()
    {
        OnInit();
    }

 

递归


void
WhileFindChild(Transform transform) { Transform temp = transform; Debug.Log(""+temp.name); if (transform.GetComponent<UISprite>()) { transform.GetComponent<UISprite>().OnInit2(); } if (transform.GetComponent<UILabel>()) { transform.GetComponent<UILabel>().OnInit2(); } if (temp.childCount > 0) { foreach (Transform item in temp) { UILabel label = item.GetComponent<UILabel>(); if (label) { label.OnInit2(); } UISprite sprite = item.GetComponent<UISprite>(); if (sprite) { sprite.OnInit2(); } temp = item; WhileFindChild(temp); } } }

 

posted @ 2014-11-11 17:32  ing...  阅读(388)  评论(0编辑  收藏  举报