Пример #1
0
    private bool PrepareAsset(PsdNode node)
    {
        TextureImporter importer = AssetImporter.GetAtPath(node.AssetPath(baseAssetPath)) as TextureImporter;

        if (!importer)
        {
            EditorUtility.DisplayDialog(
                "Error",
                "Failed loading asset at \n" + node.AssetPath(baseAssetPath) + "\n"
                + "Make sure you selected the right \"Assets Folder\" generated by " + Psd2Unity.NAME + ".",
                "OK"
                );
            return(false);
        }

        importer.textureType         = TextureImporterType.Sprite;
        importer.spritePixelsToUnits = (float)setting["pixelsToUnits"];

        TextureImporterSettings settings = new TextureImporterSettings();

        importer.ReadTextureSettings(settings);
        settings.spriteAlignment = (int)setting["pivot"];
        importer.SetTextureSettings(settings);

        AssetDatabase.ImportAsset(node.AssetPath(baseAssetPath));

        return(true);
    }
Пример #2
0
    private GameObject CreateGameObject(PsdNode ele, int sort)
    {
        Sprite sprite = AssetDatabase.LoadAssetAtPath(ele.AssetPath(baseAssetPath), typeof(Sprite)) as Sprite;

        GameObject gameObject = new GameObject();

        gameObject.name = ele.name;

        SpriteRenderer renderer = gameObject.AddComponent <SpriteRenderer>();

        renderer.sprite = sprite;

        if ((bool)setting["useOrderInLayer"])
        {
            renderer.sortingOrder = sort;
        }
        renderer.sortingLayerName = (string)setting["sortingLayerName"];

        Vector2 position = new Vector2(ele.left, ele.top);

        switch ((int)setting["pivotIndex"])
        {
        case 0:
            position.x += ele.width / 2;
            position.y += ele.height / 2;
            break;

        case 1:
            break;

        case 2:
            position.x += ele.width / 2;
            break;

        case 3:
            position.x += ele.width;
            break;

        case 4:
            position.y += ele.height / 2;
            break;

        case 5:
            position.x += ele.width;
            position.y += ele.height / 2;
            break;

        case 6:
            position.y += ele.height;
            break;

        case 7:
            position.x += ele.width / 2;
            position.y += ele.height;
            break;

        case 8:
            position.x += ele.width;
            position.y += ele.height;
            break;
        }

        gameObject.transform.localPosition = new Vector3(
            position.x / (float)setting["pixelsToUnits"] * (float)setting["scale"],
            -position.y / (float)setting["pixelsToUnits"] * (float)setting["scale"],
            -sort * (float)setting["zMultiplier"]
            );

        gameObject.transform.localScale = new Vector3(
            (float)setting["scale"], (float)setting["scale"], (float)setting["scale"]
            );

        return(gameObject);
    }