internal DanmakuSet CreateDanmakuSet(DanmakuRendererConfig config, DanmakuPool pool) { var set = new DanmakuSet(pool); var group = GetOrCreateRendererGroup(config); group.AddSet(set); return(set); }
RendererGroup GetOrCreateRendererGroup(DanmakuRendererConfig config) { RendererGroup group = null; if (!RendererGroups.TryGetValue(config, out group)) { group = CreateRendererGroup(config); RendererGroups[config] = group; } return(group); }
RendererGroup CreateRendererGroup(DanmakuRendererConfig config) { DanmakuRenderer renderer; if (config.Sprite != null) { renderer = new SpriteDanmakuRenderer(config.Material, config.Sprite); } else if (config.Mesh != null) { renderer = new DanmakuRenderer(config.Material, config.Mesh); } else { throw new Exception("Attempted to create a DanmakuSet without valid renderer."); } return(new RendererGroup(renderer)); }