// 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);
        }
Beispiel #2
0
        // 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);
        }