public void GatherProperties(PlayableDirector director, IPropertyCollector driver) { if (!(director == null) && !s_ProcessedDirectors.Contains(director)) { s_ProcessedDirectors.Add(director); GameObject val = GetGameObjectBinding(director); if (val != null) { if (active) { driver.AddFromName(val, "m_IsActive"); } if (updateDirector) { foreach (PlayableDirector item in GetComponent <PlayableDirector>(val)) { if (!(item == null)) { TimelineAsset timelineAsset = item.playableAsset as TimelineAsset; if (!(timelineAsset == null)) { timelineAsset.GatherProperties(item, driver); } } } } } s_ProcessedDirectors.Remove(director); } }