コード例 #1
0
        SpriteNameFileIdPairExt[] GetSerializedNameFileIdTable(SerializedObject so)
        {
            var nameFileIdTableSo = so.FindProperty("m_SpriteSheet.m_NameFileIdTable");
            var arraySize         = nameFileIdTableSo.arraySize;
            var nameFileIdPairs   = new SpriteNameFileIdPairExt[arraySize];

            if (nameFileIdPairs.Length > 0)
            {
                var sp = nameFileIdTableSo.GetArrayElementAtIndex(0);
                for (var i = 0; i < nameFileIdTableSo.arraySize; ++i)
                {
                    var spriteNameFileId = SpriteNameFileIdPairExt.GetValue(sp);
                    // check if this internal nid is already in one of the sprite.
                    // We don't check name as changing internal id can cause reference to be lost
                    var spriteRect = m_SpritesMultiple.FirstOrDefault(x => x.internalID == spriteNameFileId.internalID);
                    if (spriteRect != null)
                    {
                        spriteNameFileId.SetFileGUID(spriteRect.spriteID);
                    }
                    nameFileIdPairs[i] = spriteNameFileId;
                    sp.Next(false);
                }
            }

            return(nameFileIdPairs);
        }