Exemplo n.º 1
0
    void GetRelationShipStructList(List <RelationShipStruct> _already, GameObject _obj, int _level)
    {
        if (_obj == null)
        {
            return;
        }
        RelationShipStruct data = new RelationShipStruct();

        data.objName    = _obj.name;
        data.instanceID = _obj.GetInstanceID();
        if (_obj.transform.parent != null)
        {
            data.parentName       = _obj.transform.parent.gameObject.name;
            data.parentInstanceID = _obj.transform.parent.gameObject.GetInstanceID();
        }
        data.level = _level;
        Renderer rd = _obj.GetComponent <Renderer>();

        if (rd == null)
        {
            rd = _obj.GetComponent <SkinnedMeshRenderer>();
        }
        if (rd != null)
        {
            foreach (var item in rd.sharedMaterials)
            {
                if (item != null)
                {
                    data.matNames.Add(item.name.ToLower());
                }
            }
        }
        _already.Add(data);
        int count = _obj.transform.childCount;

        _level++;
        for (int i = 0; i < count; i++)
        {
            GetRelationShipStructList(_already, _obj.transform.GetChild(i).gameObject, _level);
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 初始化数据,在经过这一步之前,数据禁止使用 by吴江
    /// </summary>
    public void InitData()
    {
        RelationShipStruct myRelationShipStruct = null;

        foreach (var item in relationList)
        {
            if (item.level == 0)
            {
                myRelationShipStruct = item;
                break;
            }
        }
        if (myRelationShipStruct != null)
        {
            objName          = myRelationShipStruct.objName;
            matNames         = myRelationShipStruct.matNames;
            instanceID       = myRelationShipStruct.instanceID;
            parentInstanceID = myRelationShipStruct.parentInstanceID;
            relationList.Remove(myRelationShipStruct);
            childRelationList = InitSubData(relationList, 1, this);
        }
    }