Пример #1
0
    public static Uni2DAnimationClip CreateAnimationClip(List <Texture2D> a_rTexturesList, string a_rAnimationClipName = null, string a_rAnimationClipPath = null)
    {
        // Create a new animation clip prefab
        GameObject         oModel = new GameObject( );
        Uni2DAnimationClip oAnimationClipModel = oModel.AddComponent <Uni2DAnimationClip>( );

        // Path to save prefab
        string oPrefabPath;

        if (a_rTexturesList != null && a_rTexturesList.Count > 0)
        {
            // Sort by name
            IOrderedEnumerable <Texture2D> rOrderedTexturesEnumerable = a_rTexturesList.OrderBy(x => x.name);
            Texture2D rFirstTexture = rOrderedTexturesEnumerable.First( );

            // Create frames
            foreach (Texture2D rTexture in rOrderedTexturesEnumerable)
            {
                Uni2DAnimationFrame oAnimationFrame = new Uni2DAnimationFrame( );
                oAnimationFrame.textureContainer = new Texture2DContainer(rTexture, true);
                oAnimationClipModel.frames.Add(oAnimationFrame);
            }

            // Apply
            oAnimationClipModel.ApplySettings(Uni2DAnimationClip.AnimationClipRegeneration.RegenerateAnimationClipOnly);
            oPrefabPath = (a_rAnimationClipPath == null
                                        ? Uni2DEditorUtils.GetLocalAssetFolderPath(rFirstTexture)
                                        : a_rAnimationClipPath)

                          + (a_rAnimationClipName == null
                                        ? ("AnimationClip_" + rFirstTexture.name)
                                        : a_rAnimationClipName)

                          + ".prefab";
            // Make prefab path unique
            oPrefabPath = AssetDatabase.GenerateUniqueAssetPath(oPrefabPath);
        }
        else
        {
            // Unique prefab path
            string oClipName = (a_rAnimationClipName == null ? mc_oAnimationClipDefaultName : a_rAnimationClipName);
            oPrefabPath = (a_rAnimationClipPath == null
                                ? Uni2DEditorUtils.GenerateNewPrefabLocalPath(oClipName)
                                : AssetDatabase.GenerateUniqueAssetPath(a_rAnimationClipPath + oClipName));
        }

        // Save it as a prefab
        GameObject oPrefab = PrefabUtility.CreatePrefab(oPrefabPath, oModel);

        // Destroy model
        GameObject.DestroyImmediate(oModel);

        // Return prefab animation clip component
        return(oPrefab.GetComponent <Uni2DAnimationClip>( ));
    }
Пример #2
0
    static void DoCreatePixelPerfectCameraAssetsMenu( )
    {
        string oNewPrefabPath = Uni2DEditorUtils.GenerateNewPrefabLocalPath(mc_oPixelPerfectCameraDefaultName);

        GameObject oPrefabModel = new GameObject( );

        oPrefabModel.AddComponent <Camera>( );
        oPrefabModel.AddComponent <Uni2DPixelPerfectCamera>( );

        PrefabUtility.CreatePrefab(oNewPrefabPath, oPrefabModel);
        GameObject.DestroyImmediate(oPrefabModel);
    }
Пример #3
0
    static void DoCreateTextureAtlas()
    {
        // Get the selected path
        string oNewPrefabPath = Uni2DEditorUtils.GenerateNewPrefabLocalPath(mc_oTextureAtlasDefaultName);

        // Create model
        GameObject oPrefabModel = new GameObject();

        oPrefabModel.AddComponent <Uni2DTextureAtlas>();

        // Save it as a prefab
        PrefabUtility.CreatePrefab(oNewPrefabPath, oPrefabModel);

        // Destroy model
        GameObject.DestroyImmediate(oPrefabModel);
    }