Beispiel #1
0
        private GameObject CreateView(string newScreenId)
        {
            var view = viewCreator.Create(newScreenId);

            if (OnViewCreated != null)
            {
                OnViewCreated(newScreenId, view);
            }
            return(view);
        }
Beispiel #2
0
        public EntryEditorBaseView CreateView(Type entryType)
        {
            IViewCreator creator = null;

            if (_creators.TryGetValue(entryType, out creator))
            {
                return(creator.Create());
            }
            else
            {
                throw new InvalidOperationException($"{entryType}' type not registered.");
            }
        }
        public DanmakuView Get()
        {
            DanmakuView view;

            if (Cache == null)
            {
                // 缓存中没有View
                if (InUseSize >= MaxSize)
                {
                    return(null);
                }
                view = Creator.Create();
            }
            else
            {
                // 有可用的缓存,从缓存中取
                view = Cache.Poll().DanmakuView;
            }
            view.AddOnExitListener(new DanmakuExitListener(this));
            InUseSize++;
            return(view);
        }