Skip to content

Commit bca86d4

Browse files
author
Bruno Mikoski
committed
add: first working version
1 parent 526f93a commit bca86d4

File tree

60 files changed

+2745
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+2745
-2
lines changed

.gitignore

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# This .gitignore file should be placed at the root of your Unity project directory
2+
#
3+
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
4+
#
5+
/[Ll]ibrary/
6+
/[Tt]emp/
7+
/[Oo]bj/
8+
/[Bb]uild/
9+
/[Bb]uilds/
10+
/[Ll]ogs/
11+
/[Mm]emoryCaptures/
12+
13+
# Asset meta data should only be ignored when the corresponding asset is also ignored
14+
!/[Aa]ssets/**/*.meta
15+
16+
# Uncomment this line if you wish to ignore the asset store tools plugin
17+
# /[Aa]ssets/AssetStoreTools*
18+
19+
# Autogenerated Jetbrains Rider plugin
20+
[Aa]ssets/Plugins/Editor/JetBrains*
21+
22+
# Visual Studio cache directory
23+
.vs/
24+
25+
# Gradle cache directory
26+
.gradle/
27+
28+
# Autogenerated VS/MD/Consulo solution and project files
29+
ExportedObj/
30+
.consulo/
31+
*.csproj
32+
*.unityproj
33+
*.sln
34+
*.suo
35+
*.tmp
36+
*.user
37+
*.userprefs
38+
*.pidb
39+
*.booproj
40+
*.svd
41+
*.pdb
42+
*.mdb
43+
*.opendb
44+
*.VC.db
45+
46+
# Unity3D generated meta files
47+
*.pidb.meta
48+
*.pdb.meta
49+
*.mdb.meta
50+
51+
# Unity3D generated file on crash reports
52+
sysinfo.txt
53+
54+
# Builds
55+
*.apk
56+
*.unitypackage
57+
58+
# Crashlytics generated file
59+
crashlytics-build.properties
60+
61+
#Custom
62+
63+
.idea

.gitmodules

Whitespace-only changes.

CHANGELOG.MD

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Changelog
2+
All notable changes to this project will be documented in this file.
3+
4+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
8+
## [0.0.4]
9+
### Changed
10+
- General bugfixing and improvements
11+
12+
## [0.0.1]
13+
### Added
14+
- First initial working version
15+
16+
## [Unreleased]
17+
- Add reference finder support
18+
19+
[0.0.1]: https://github.com/badawe/ScriptableObjectCollection/releases/tag/v0.0.1
20+
[0.0.4]: https://github.com/badawe/ScriptableObjectCollection/releases/tag/v0.0.4
21+
22+

CHANGELOG.MD.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

LICENSE

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
TL:DR
2+
- You can freely use ScriptableObjectCollection in both commercial and non-commercial projects
3+
- You can redistribute verbatim copies of the code, along with any readme files and attributions
4+
- You can modify the code only for your own use and you cannot redistribute modified versions (but you can send pull requests to me)
5+
6+
7+
Copyright Holder
8+
Bruno Mikoski
9+
10+
You/Your
11+
Means any person who would like to copy, distribute, or modify the Package.
12+
13+
Package
14+
Means the collection of files distributed by the Copyright Holder, and derivatives of that collection and/or of those files.
15+
A given Package may consist of either the Standard Version, or a Modified Version.
16+
17+
Distribute
18+
Means providing a copy of the Package or making it accessible to anyone else, or in the case of a company or organization,
19+
to others outside of your company or organization.
20+
21+
Standard Version
22+
Refers to the Package if it has not been modified, or has been modified only in ways explicitly requested by the Copyright Holder.
23+
24+
Modified Version
25+
Means the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder.
26+
27+
License
28+
You are permitted to use the Standard Version and create and use Modified Versions for any purpose without restriction,
29+
provided that you do not Distribute the Modified Version.
30+
31+
You may Distribute verbatim copies of the Source form of the Standard Version of this Package in any medium without restriction,
32+
either gratis or for a Distributor Fee, provided that you duplicate all of the original copyright notices and associated disclaimers
33+
and also include the original readme.txt file. At your discretion, such verbatim copies may or may not include a Compiled form of the Package.
34+
35+
Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or
36+
distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license.
37+
38+
This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder.
39+
40+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
41+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
42+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
43+
44+
45+

LICENSE.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 67 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,67 @@
1-
# ScriptableObjectCollection
2-
A utility to improve the usability of Scriptable Objects allowing access by code
1+
# Scriptable Object Collection
2+
3+
4+
[![openupm](https://img.shields.io/npm/v/com.brunomikoski.scriptableobjectcollection?label=openupm&registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.brunomikoski.scriptableobjectcollection/)
5+
6+
![](https://img.shields.io/github/followers/badawe?label=Follow&style=social) ![](https://img.shields.io/twitter/follow/brunomikoski?style=social)
7+
8+
9+
Scriptable Object Collection its a tool to help you work with scriptable objects, by allowing static code access to any of the Assets while keeping the usability of having a configurable by Inspector asset.
10+
11+
12+
![wizard](/Documentation~/create-collection-wizzard.png)
13+
![collection-usability](/Documentation~/collection-usability.gif)
14+
![wizard](/Documentation~/property-drawer.gif)
15+
![code-access](/Documentation~/code-access.gif)
16+
17+
18+
## Features
19+
- Allow access Scriptable Objects by code, reducing the number of references on the project
20+
- Group Scriptable Objects that bellows together in a simple coherent interface
21+
- Enable a dropdown selection of all the items inside a collection when the item is serialized through the inspector
22+
- Automatically generate static access code
23+
- Allow you to expose the entire object to be tweakable in any inspector
24+
- Makes the usability of Scriptable Objects in bigger teams a lot better
25+
26+
27+
## How to use
28+
1. Create new collections by the wizard `Assets/Create/Scriptable Object Collection/New Collection`
29+
2. Now you should treat your new `ScriptableObjectCollection` as a regular `ScriptableObject`, add any item you wan there
30+
3. Now add new items to the collection by using the buttons on the Collection Inspector
31+
4. After you are done, click on Generate Code on the collection to generate the Static access to those objects
32+
33+
34+
## Tips
35+
- Avoid Duplicating / Deleting `CollectableScriptableObject` asset manually, use the `Add New` and the `X` buttons on the Collection Inspector
36+
- The generated code needs to be inside the same assembly as the `CollectableScriptableObject` and `ScriptableObjectcollection`, you can configure where this should be stored on the `ScriptableObjectCollectionSettings`, if you are not seeing the settings, create one by using the menu `Assets/Create/Scriptable Object Collection/Create Settings`
37+
- While dealing with saving to json / reading by json you can avoid serializing the entire object, you can see how Its done for [FullSerializer](https://github.com/jacobdufault/fullserializer) on the file `fsCollectableScriptableObjectConverter`
38+
39+
## System Requirements
40+
Unity 2018.4.0 or later versions
41+
42+
43+
## Installation
44+
45+
### OpenUPM
46+
The package is available on the [openupm registry](https://openupm.com). It's recommended to install it via [openupm-cli](https://github.com/openupm/openupm-cli).
47+
48+
```
49+
openupm add com.brunomikoski.scriptableobjectcollection
50+
```
51+
52+
### Manifest
53+
You can also install via git URL by adding this entry in your **manifest.json**
54+
```
55+
"com.brunomikoski.scriptableobjectcollection": "https://github.com/badawe/ScriptableObjectCollection.git"
56+
```
57+
58+
### Unity Package Manager
59+
```
60+
from Window->Package Manager, click on the + sign and Add from git: https://github.com/badawe/ScriptableObjectCollection.git
61+
```
62+
63+
## License TL:DR
64+
- You can freely use Scriptable Object Collection in both commercial and non-commercial projects
65+
- You can redistribute verbatim copies of the code, along with any readme files and attributions
66+
- You can modify the code only for your own (company/studio) use and you cannot redistribute modified versions outside your own company/studio (but you can send pull requests to me)
67+

README.md.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Scripts.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Scripts/Editor.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "BrunoMikoski.ScriptableObjectCollection.Editor",
3+
"references": [
4+
"BrunoMikoski.ScriptableObjectCollection"
5+
],
6+
"includePlatforms": [
7+
"Editor"
8+
],
9+
"excludePlatforms": [],
10+
"allowUnsafeCode": false,
11+
"overrideReferences": false,
12+
"precompiledReferences": [],
13+
"autoReferenced": true,
14+
"defineConstraints": [],
15+
"versionDefines": [],
16+
"noEngineReferences": false
17+
}

Scripts/Editor/BrunoMikoski.ScriptableObjectCollection.Editor.asmdef.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)