Skip to content

Commit

Permalink
add readme
Browse files Browse the repository at this point in the history
  • Loading branch information
k-okawa committed Dec 12, 2021
1 parent 3b0b24e commit 82b1eae
Showing 1 changed file with 102 additions and 0 deletions.
102 changes: 102 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# DirectoryDuplicator
[![openupm](https://img.shields.io/npm/v/com.littlebigfun.addressable-importer?label=openupm&registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.littlebigfun.addressable-importer/)

This package is possible to duplicate files in directory with guid dependencies.

When duplicate directory normally, guid in duplicated file refer original directory files.

For example, such a directory below:

```
Original
-image.prefab
-sp.png
```

image.prefab has image component that set sp.png.

duplicated directory is

```
Original(copy)
-image.prefab
-sp.png
```

sprite field of image component in Original(copy)/image.prefab refer Original/sp.png.

This is inconvenient for asset template directory.

## Installation

### Install via git url
Open Window/Package Manager, and add package from git URL...

```
https://github.com/k-okawa/DirectoryDuplicator.git?path=Assets/Bg/DirectoryDuplicator
```

### Install via OpenUPM

```
openupm add com.bg.directoryduplicator
```

## How to use

Select a directory and click right mouse button to show context menu.

And then select "Bg/DuplicateDirectoryWithDependencies" menu.

That's all.

## Utility functions

If you need to create custom editor use this package function, you can use utility functions.

```c#
/// <summary>
/// Copy directory and change guid dependencies in target directory
/// </summary>
/// <param name="originDirectory">original directory absolute path</param>
/// <param name="targetDirectory">copy destination directory absolute path</param>
/// <param name="copyExcludeDirectories">exclude sub directories that included in origin directory from copy</param>
public static void CopyDirectoryWithDependencies(string originDirectory, string targetDirectory, string[] copyExcludeDirectories = null);

/// <summary>
/// Copy directory(sub directories included)
/// </summary>
/// <param name="originDirectory">original directory absolute path</param>
/// <param name="targetDirectory">copy destination directory absolute path</param>
/// <param name="copyExcludeDirectories">exclude sub directories that included in origin directory from copy</param>
public static void CopyDirectory(string originDirectory, string targetDirectory, string[] copyExcludeDirectories = null);

/// <summary>
/// Change guid dependencies in target directory
/// </summary>
/// <param name="originDirectory">original directory absolute path</param>
/// <param name="targetDirectory">copy destination directory absolute path</param>
public static void ChangeGuidToNewFile(string originDirectory, string targetDirectory);
```

## Supported asset file types

```
anim, controller, overrideContoroller, prefab, mat, material, playable, asset, unity
```

This package changes guid in yaml file.

So it supports all asset yaml files.

But it needs to specify file extensions.

If short asset type, please add file extension to [DirectoryDuplicator.cs line 69](https://github.com/k-okawa/DirectoryDuplicator/blob/master/Assets/Bg/DirectoryDuplicator/Editor/DirectoryDuplicator.cs#L69).

I would appreciate you to create pull request or issue if you could.

## External Library

This package includes customized [YamlDotNet for Unity](https://assetstore.unity.com/packages/tools/integration/yamldotnet-for-unity-36292?locale=ja-JP).

Customization is change namespace, so if your project include YamlDotNet for Unity, it is not affects namespace conflict.

0 comments on commit 82b1eae

Please sign in to comment.