Пример #1
0
    static void main()
    {
        Object target = Selection.activeObject;

        if (target == null || target.GetType() != typeof(Texture2D))
        {
            return;
        }

        Texture2D sourceTex = target as Texture2D;
        //整体路径
        string filePathWithName = AssetDatabase.GetAssetPath(sourceTex);
        //带后缀的文件名
        string fileNameWithExtension = Path.GetFileName(filePathWithName);
        //不带后缀的文件名
        string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(filePathWithName);
        //不带文件名的路径
        string filePath = filePathWithName.Replace(fileNameWithExtension, "");

        UGUISpriteAsset spriteAsset = AssetDatabase.LoadAssetAtPath(filePath + fileNameWithoutExtension + ".asset", typeof(UGUISpriteAsset)) as UGUISpriteAsset;
        bool            isNewAsset  = spriteAsset == null ? true : false;

        if (isNewAsset)
        {
            spriteAsset                      = ScriptableObject.CreateInstance <UGUISpriteAsset>();
            spriteAsset.texSource            = sourceTex;
            spriteAsset.listSpriteAssetInfor = GetSpritesInfor(sourceTex);
            AssetDatabase.CreateAsset(spriteAsset, filePath + fileNameWithoutExtension + ".asset");
        }
    }
 public void OnEnable()
 {
     spriteAsset = (UGUISpriteAsset)target;
 }