public static ParticleObjectInfo Create(GameObject gobj)
        {
            ParticleSystem particle = gobj.GetComponent <ParticleSystem>();

            if (particle == null)
            {
                return(null);
            }

            ParticleObjectInfo obj = new ParticleObjectInfo();

            obj.Init(particle);
            return(obj);
        }
        void RecursiveFind(GameObject gobj)
        {
            ParticleObjectInfo poi = ParticleObjectInfo.Create(gobj);
            ModelObjectInfo    moi = ModelObjectInfo.Create(gobj);

            if (poi != null)
            {
                single_particle_list.Add(poi);
                AddToList(poi.tex_info_list, poi.mesh_info, poi.material_info);
            }

            if (moi != null)
            {
                single_model_list.Add(moi);
                AddToList(moi.tex_info_list, moi.mesh_info, moi.material_info);
            }

            Transform tobj = gobj.transform;

            for (int i = 0; i < tobj.childCount; i++)
            {
                RecursiveFind(tobj.GetChild(i).gameObject);
            }
        }