static public long MakeInternalID(SerializedObject serializedObject, UnityType type, string name)
    {
        long id = ImportSettingInternalID.FindInternalID(serializedObject, type, name);

        if (id == 0L)
        {
            id = AssetImporter.MakeLocalFileIDWithHash(type.persistentTypeID, name, 0);
            RegisterInternalID(serializedObject, type, id, name);
        }
        return(id);
    }
Пример #2
0
        private int AddSprite(Rect rect, int alignment, Vector2 pivot, string name, Vector4 border, bool uniqueNameCheck = true)
        {
            var  sed        = spriteEditor.GetDataProvider <ISpriteEditorDataProvider>();
            long internalID = AssetImporter.MakeLocalFileIDWithHash(spriteType.persistentTypeID, name, 0);

            if (m_RectsCache.HasName(name))
            {
                return(-1);
            }
            if (m_RectsCache.HasInternalID(internalID))
            {
                return(-1);
            }

            SpriteRect spriteRect = new SpriteRect();

            spriteRect.rect         = rect;
            spriteRect.alignment    = (SpriteAlignment)alignment;
            spriteRect.pivot        = pivot;
            spriteRect.name         = name;
            spriteRect.originalName = spriteRect.name;
            spriteRect.border       = border;

            spriteRect.internalID = internalID;
            spriteRect.spriteID   = GUID.CreateGUIDFromSInt64(internalID);

            // check if someone is using the internal id, if so, we change it to us.
            // Only TextureImporter needs this now.
            var ai      = sed.targetObject as TextureImporter;
            var oldName = "";

            if (ai != null && ai.GetNameFromInternalIDMap(internalID, ref oldName))
            {
                if (string.IsNullOrEmpty(oldName))
                {
                    return(-1);
                }
                spriteRect.originalName = oldName;
            }
            else
            {
                spriteRect.m_RegisterInternalID = true;
            }

            m_RectsCache.Add(spriteRect);
            spriteEditor.SetDataModified();

            return(m_RectsCache.spriteRects.Count - 1);
        }