public void Initialize(FMOD.EventGroup eventgroup, FmodEventGroup parentGroup, FmodEventAsset asset) { FMOD.EventGroup childEventgroup = null; FMOD.RESULT result = FMOD.RESULT.OK; FmodEventGroup child = null; int numChildrenGroups = 0; int numEvents = 0; FMOD.Event e = null; FmodEvent toAdd = null; hideFlags = HideFlags.HideInHierarchy; m_projectName = asset.getProjectName(); m_parent = parentGroup; _getName(eventgroup); result = eventgroup.loadEventData(); ERRCHECK(result); result = eventgroup.getNumEvents(ref numEvents); ERRCHECK(result); for (int j = 0; j < numEvents; j++) { e = null; result = eventgroup.getEventByIndex(j, FMOD.EVENT_MODE.DEFAULT | FMOD.EVENT_MODE.ERROR_ON_DISKACCESS, ref e); ERRCHECK(result); if (result != FMOD.RESULT.OK) { result = FMOD.RESULT.OK; } toAdd = FmodEvent.CreateInstance("FmodEvent") as FmodEvent; if (e != null) { toAdd.Initialize(e, this, j, asset); e.release(); } else { toAdd.Initialize(this, j, asset); } m_events.Add(toAdd); } result = eventgroup.freeEventData(false); ERRCHECK(result); result = eventgroup.getNumGroups(ref numChildrenGroups); for (int k = 0; k < numChildrenGroups; k++) { result = eventgroup.getGroupByIndex(k, false, ref childEventgroup); ERRCHECK(result); child = FmodEventGroup.CreateInstance("FmodEventGroup") as FmodEventGroup; child.Initialize(childEventgroup, this, asset); m_children.Add(child); } name = getFullName(); }