-
Notifications
You must be signed in to change notification settings - Fork 1
Namespace: WIDVE.IO
Location: WIDVE Unity Scripts/IO
The WIDVE.IO namespace contains a generic data collection system, as well as helper methods for working with various file types.
A DataFile is a wrapper for a file on disk. The file can be located in the Assets folder, elsewhere on the local machine, or on a network drive. Files and folders that do not already exist will be created. The DataFile class contains logic for writing to a backup file if the specified file is inaccessible, for example if a network drive is unavailable.
DataFile is an abstract class; functions for writing data to specific types of files are contained in their own classes. Properties that are common to all file types are described below.
| Property | Description |
|---|---|
Filename |
Name of the file. |
Folder |
Parent folder of the file. Can be an absolute path, or a path relative to one of several Unity data folder. |
FolderType |
Specifies whether Folder is an absolute or relative path, and its location. See the FolderType table. |
Path |
Full path to the file. Created by combining Filename, Folder, and FolderType. Can be get, but not set. |
RelativePath |
Relative path to the file. If FolderType is absolute, will be the same as Path. Otherwise, the path will be relative to whichever data folder is specified by FolderType. |
FileFormat |
Specifies whether the file is a binary or text file. |
Extension |
Extension used by the file. |
WriteMode |
Specifies how the file will be written to. See the WriteMode table. |
| FolderType | Description |
|---|---|
Absolute |
Folder specifies an absolute path on a local or network drive. |
RelativeToApplicationDataPath |
Folder specifies a relative path in the game data folder. |
RelativeToPersistentDataPath |
Folder specifies a relative path in the persistent data folder. |
RelativeToStreamingAssetsPath |
Folder specifies a relative path in the streaming assets folder. |
| WriteMode | Description |
|---|---|
AlwaysOverwrite |
Overwrites the file each time it is written to. |
OverwriteThenAppend |
Overwrites the file the first time it is written to during each run of the program. Afterwards, the file will be appended to. |
Append |
Each write will be appended to the end of the file. |
ReadOnly |
Trying to write to the file will do nothing. |
Increment |
If the file already exists, the filename will be incremented. Data will be written to the incremented file. |
Data file objects can be created from the Create/DataFile/... menu.
The DataFileText class is an abstract class that contains logic for writing text-based files.
DataFileCSV and DataFileTSV both extend this class and enable writing to comma- and tab-separated files, respectively. DataFileTXT is a generic implementation of this class that can be used for text files of any type.
| Function | Description |
|---|---|
GetWriter() |
Returns a StreamWriter for the file, with write settings based on the file's current WriteMode. |
GetReader() |
Returns a StreamReader for the file. |
Write(string text) |
Writes the given text to the file. |
Write(string[] text, string separator = "") |
Writes the given sequence of text to the file, with an optional separator between each entry. |
DataFileCSV and DataFileTSV enable writing to comma-/tab- separated files.
| Function | Description |
|---|---|
WriteData(DataContainer[][] buffer) |
Writes the given DataContainers to the file. Each array of DataContainers will be written as a line, with individual entries separated by commas/tabs. |
DataFileTXT enables writing to generic text files.
The DataFileBinary class is an abstract class that contains logic for writing binary files.
| Function | Description |
|---|---|
GetWriter() |
Returns a BinaryWriter for the file, with write settings based on the file's current WriteMode. |
GetReader() |
Returns a BinaryReader for the file. |
GetAllBytes() |
Returns an array of all bytes in the file. |
Write(byte[] bytes) |
Writes the given bytes to the file. |
DataFilePNG supports reading from and writing to PNG files. Conversion between Texture2D data and PNG file data is also supported.
| Function | Description |
|---|---|
Load() |
Returns a Texture2D loaded from the PNG file. |
Save(Texture texture) |
Saves the given Texture to the PNG file. |
Save(Texture2D texture2D) |
Saves the given Texture2D to the PNG file. |
ConvertTextureToTexture2D(Texture texture) |
Performs some very convoluted logic to convert a Texture to a Texture2D. |