예제 #1
0
        private UnityEngine.Texture2D FindFrameTexture(SpriteFactory.GameMasterSprite gameMasterSprite)
        {
            SpriteFactory.Editor.EditorMasterSpriteCore emsc = FileFinder.GetEditorMasterSprite(gameMasterSprite);
            if (emsc == null)
            {
                throw new System.Exception("EditorMasterSprite could not be found!");
            }

            SpriteFactory.Editor.EditorMasterSprite.Frame frame = emsc.data.GetEditorPreviewFrame();
            if (frame == null)
            {
                return(null);              // no frame
            }
            return(frame.GetTexture());
        }
예제 #2
0
            // METHODS
            public static SpriteFactory.Editor.EditorMasterSpriteCore GetEditorMasterSprite(SpriteFactory.GameMasterSprite gameMasterSprite)
            {
                string emsSavePath = rootPath + editorMasterSpriteSavePath;

                string gmsFilePath = UnityEditor.AssetDatabase.GetAssetPath(gameMasterSprite);
                string gmsFileName = System.IO.Path.GetFileNameWithoutExtension(gmsFilePath);

                // convert GMS file name to EMS file name
                string gmsFileNameL = gmsFileName.ToLower();
                string gmsTypeCodeL = gameMasterSpriteTypeCode.ToLower();
                string sgTypeCodeL  = spriteGroupTypeCode.ToLower();
                string emscFileName;

                if (gmsFileNameL.StartsWith(gmsTypeCodeL))                                                                                                                                                           // this is an ungrouped master sprite
                {
                    emscFileName = editorMasterSpriteTypeCode + gmsFileName.Substring(gameMasterSpriteTypeCode.Length, gmsFileName.Length - (gameMasterSpriteTypeCode.Length * 2)) + editorMasterSpriteCoreTypeCode; // strip start and end type codes replacing with ~MS~, end MSC
                }
                else if (gmsFileNameL.StartsWith(sgTypeCodeL))                                                                                                                                                       // this is a grouped master sprite
                {
                    emscFileName = gmsFileName.Substring(0, gmsFileName.Length - gameMasterSpriteTypeCode.Length) + editorMasterSpriteCoreTypeCode;                                                                  // strip off end and replace with ems core version
                    emscFileName.Replace(fileNameDelimiter + gameMasterSpriteTypeCode + fileNameDelimiter, fileNameDelimiter + editorMasterSpriteTypeCode + fileNameDelimiter);                                      // replace middle ~GMS~ with ems version
                }
                else
                {
                    throw new System.Exception("Error trying to parse MasterSprite file name!");
                }

                string emscFullPath = emsSavePath + directoryDelimiter + emscFileName + assetExtension;

                if (!System.IO.File.Exists(emscFullPath))
                {
                    return(null);
                }

                SpriteFactory.Editor.EditorMasterSpriteCore emsc = (SpriteFactory.Editor.EditorMasterSpriteCore)UnityEditor.AssetDatabase.LoadAssetAtPath(emscFullPath, typeof(SpriteFactory.Editor.EditorMasterSpriteCore));
                return(emsc);
            }