Skip to content

Commit b4a287f

Browse files
authored
Merge pull request #140 from annulusgames/chore-readme
chore: update Readme
2 parents 2e123d6 + caf2c91 commit b4a287f

1 file changed

Lines changed: 28 additions & 28 deletions

File tree

README.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,34 @@
88

99
## Overview
1010

11-
Alchemy is a library that provides inspector extensions using attributes.
11+
Alchemy is a library that provides Inspector extensions using attributes.
1212

13-
In addition to adding easy and powerful editor extensions based on attributes, it allows serialization of any type (Dictionary, Hashset, Nullable, Tuple, etc...) through its own serialization process, making it possible to edit them in the inspector. By using Source Generator to dynamically generate the necessary code, it works simply by adding attributes to the target type marked as partial. There is no need to inherit from dedicated classes as with Odin.
13+
In addition to providing easy and powerful attribute-based editor extensions, it allows serialization of any types (Dictionary, HashSet, Nullable, Tuple, etc.) via its own serialization system, so those types can be edited in the Inspector. Alchemy works simply by adding attributes to the target type — just mark it as `partial`, and a Source Generator creates the necessary code. Unlike Odin, there is no need to inherit from dedicated base classes.
1414

1515
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-v2.0.png" width="800">
1616

17-
Additionally, with the new features of v2.0, EditorWindow extensions and Hierarchy extensions have been added. These make it easy to create tools that streamline the development workflow in the editor.
17+
v2.0 also adds EditorWindow and Hierarchy extensions. These make it easy to build tools that streamline your editor workflow.
1818

1919
## Features
2020

21-
* Adds over 30 attributes to extend the Inspector
22-
* Supports SerializeReference, allowing selection of types from a dropdown
23-
* Serialize any type (Dictionary, Hashset, Nullable, Tuple, etc...) / Editable in Inspector
24-
* Creation of EditorWindow using attributes
25-
* Provides features to improve usability of the Hierarchy
26-
* Creation of custom attributes that work with Alchemy
21+
* Add over 30 attributes to extend the Inspector
22+
* Support SerializeReference, allowing selection of types from a dropdown
23+
* Serialize any type (Dictionary, HashSet, Nullable, Tuple, etc.) and edit them in the Inspector
24+
* Create EditorWindows using attributes
25+
* Improve Hierarchy usability
26+
* Create custom attributes that work with Alchemy
2727

2828
## Setup
2929

3030
### Requirements
3131

3232
* Unity 2021.2 or higher (Recommended: 2022.1 or higher for serialization extensions)
33-
* Serialization 2.0 or higher (for serialization extensions)
33+
* Unity Serialization 2.0 or higher (for serialization extensions)
3434

3535
### Installation
3636

3737
1. Open Package Manager from Window > Package Manager
38-
2. Click on the "+" button > Add package from git URL
38+
2. Click the "+" button > Add package from git URL
3939
3. Enter the following URL:
4040

4141
```
@@ -54,11 +54,11 @@ Or open Packages/manifest.json and add the following to the dependencies block:
5454

5555
## Documentation
5656

57-
The full version of the documentation can be found [here](https://annulusgames.github.io/Alchemy/).
57+
The full documentation can be found [here](https://annulusgames.github.io/Alchemy/).
5858

5959
## Basic Usage
6060

61-
To customize the display in the Inspector, add attributes to the fields of the class.
61+
To customize the display in the Inspector, add attributes to the class fields.
6262

6363
```cs
6464
using UnityEngine;
@@ -85,7 +85,7 @@ public class AttributesExample : MonoBehaviour
8585

8686
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-attributes-example.png" width="600">
8787

88-
Various attributes for grouping each field are also provided. Each group can be nested by separating with a slash `/`.
88+
Attributes for grouping fields are also available. Groups can be nested by separating group names with a slash `/`.
8989

9090
```cs
9191
using UnityEngine;
@@ -115,7 +115,7 @@ public class GroupAttributesExample : MonoBehaviour
115115

116116
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-group-1.png" width="600">
117117

118-
By adding the `[Button]` attribute to a method, the method can be executed from the Inspector.
118+
By adding the `[Button]` attribute to a method, you can execute the method from the Inspector.
119119

120120
```cs
121121
using System.Text;
@@ -161,7 +161,7 @@ public class ButtonExample : MonoBehaviour
161161

162162
Alchemy provides many other attributes. The list of available attributes can be found in the [documentation](https://annulusgames.github.io/Alchemy/articles/en/inspector-extension-with-attributes.html).
163163

164-
## Editing Interfaces/Abstract Classes
164+
## Editing Interfaces and Abstract Classes
165165

166166
Alchemy supports Unity's SerializeReference. By adding the `[SerializeReference]` attribute, interfaces and abstract classes can be edited in the Inspector.
167167

@@ -197,36 +197,36 @@ public class SerializeReferenceExample : MonoBehaviour
197197

198198
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-serialize-reference.png" width="600">
199199

200-
Interfaces/abstract classes are displayed as shown above, and you can select child classes from the dropdown to instantiate them.
200+
Interfaces and abstract classes are displayed as shown above, and you can select concrete types from the dropdown to instantiate them.
201201

202202
For more details, refer to [SerializeReference](https://annulusgames.github.io/Alchemy/articles/en/serialize-reference.html).
203203

204204
## Hierarchy
205205

206-
By introducing Alchemy, several features are added to extend the Hierarchy.
206+
Alchemy provides several features that extend the Hierarchy.
207207

208208
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-hierarchy.png" width="600">
209209

210210
### Toggles and Icons
211211

212212
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/gif-hierarchy-toggle.gif" width="600">
213213

214-
Toggles to switch between active/inactive states of objects and icons to display the components of objects can be added to the Hierarchy. These can be configured from ProjectSettings.
214+
You can add toggles for each object's active/inactive state and icons that show its components to the Hierarchy. These can be configured from Project Settings.
215215

216216
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-project-settings.png" width="600">
217217

218218
### Decoration
219219

220-
Additionally, objects to decorate the Hierarchy can be created from the Create menu.
220+
From the Create menu, you can create objects that decorate the Hierarchy.
221221

222222
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-create-hierarchy-object.png" width="600">
223223

224-
These objects are automatically excluded in build. (If they have child objects, all child objects are detached before deletion.)
224+
These objects are automatically excluded from builds. (If they have child objects, any child objects are unparented before deletion.)
225225
For more details, refer to [Decorating Hierarchy](https://annulusgames.github.io/Alchemy/articles/en/decorating-hierarchy.html).
226226

227227
## AlchemyEditorWindow
228228

229-
By inheriting from the `AlchemyEditorWindow` class instead of the usual `Editor` class, you can create editor windows using Alchemy attributes.
229+
By inheriting from the `AlchemyEditorWindow` class instead of `EditorWindow`, you can create editor windows using Alchemy attributes.
230230

231231
```cs
232232
using System;
@@ -276,15 +276,15 @@ public class EditorWindowExample : AlchemyEditorWindow
276276

277277
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-editor-window.png" width="600">
278278

279-
The data of windows created by inheriting from `AlchemyEditorWindow` is saved in json format in the ProjectSettings folder of the project. For more details, refer to [Saving Editor Window Data](https://annulusgames.github.io/Alchemy/articles/en/saving-editor-window-data.html).
279+
Data for windows that inherit from `AlchemyEditorWindow` is saved as JSON in the project's ProjectSettings folder. For more details, refer to [Saving Editor Window Data](https://annulusgames.github.io/Alchemy/articles/en/saving-editor-window-data.html).
280280

281281
## Using Serialization Extensions
282282

283-
If you want to edit types that Unity cannot serialize, such as Dictionary, you can use the `[AlchemySerialize]` attribute to perform serialization.
283+
If you want to edit types that Unity cannot serialize, such as Dictionary, you can use the `[AlchemySerialize]` attribute to serialize these types.
284284

285-
If you want to use serialization extensions, you will need the [Unity.Serialization](https://docs.unity3d.com/Packages/com.unity.serialization@3.1/manual/index.html) package. Additionally, reflection-based serialization using Unity.Serialization may not work in AOT environments prior to Unity 2022.1. Check the package manual for details.
285+
Serialization extensions require the [Unity.Serialization](https://docs.unity3d.com/Packages/com.unity.serialization@3.1/manual/index.html) package. Additionally, reflection-based serialization using Unity.Serialization may not work in AOT environments prior to Unity 2022.1. Check the package manual for details.
286286

287-
Below is a sample using Alchemy's serialization extension to make various types serializable/editable in the Inspector.
287+
The following example uses Alchemy's serialization extension to make various types serializable and editable in the Inspector.
288288

289289
```cs
290290
using System;
@@ -293,7 +293,7 @@ using UnityEngine;
293293
using Alchemy.Serialization;
294294

295295
// By adding the [AlchemySerialize] attribute, Alchemy's serialization extension is enabled.
296-
// It can be used with any type that has an optional base class, but the target type must be partial for the Source Generator to generate code.
296+
// It can be used with any type, regardless of its base class, but the target type must be partial for the Source Generator to generate code.
297297
[AlchemySerialize]
298298
public partial class AlchemySerializationExample : MonoBehaviour
299299
{
@@ -314,7 +314,7 @@ public partial class AlchemySerializationExample : MonoBehaviour
314314

315315
<img src="https://github.com/annulusgames/Alchemy/blob/main/docs/images/img-serialization-sample.png" width="600">
316316

317-
For technical details of the serialization process, refer to [Alchemy Serialization Process](https://annulusgames.github.io/Alchemy/articles/en/alchemy-serialization-process.html) in the documentation.
317+
For technical details on the serialization process, refer to [Alchemy Serialization Process](https://annulusgames.github.io/Alchemy/articles/en/alchemy-serialization-process.html) in the documentation.
318318

319319
## Help
320320

0 commit comments

Comments
 (0)