// Load all posters in given filepath // TODO: Get rid of static function public List <SpawnMenuItem> LoadPosters(string texturePath) { List <SpawnMenuItem> posters = new List <SpawnMenuItem>(); string posterPrefabPath = Poster.PrefabPath; Object[] sprites = Resources.LoadAll(texturePath, typeof(Sprite)); foreach (Object s in sprites) { Sprite sprite = (Sprite)s; PosterInitData newPosterData = new PosterInitData(posterPrefabPath, s.name, sprite.texture); // TODO : Parse name (human-readable) into something prettier? SpawnMenuItem newPoster = new SpawnMenuItem(s.name, sprite, newPosterData); posters.Add(newPoster); } return(posters); }
// TODO: Is it safe to keep this public? Maybe should be called by Start / OnEnable and protected? public override void Initialize(ObjectInitData initData) { // Confirm that ObjectInitData is valid PosterData if (initData == null) { Debug.LogError("Attempting to initialize Poster with null objectInitData"); return; } else if (initData.GetType() != typeof(PosterInitData)) { Debug.LogErrorFormat("Attempting to initialize a Poster with ObjectInitData of type {0}. Valid PosterInitData required."); return; } // Cast initData to PosterInitData posterInitData = (PosterInitData)initData; // Set label to PosterData.Label // Set texture to PosterData.Texture posterTexture = posterInitData.Texture; base.Initialize(initData); }