Skip to content

Commit bd4140a

Browse files
authored
Create README.md
1 parent 682ffa0 commit bd4140a

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

README.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# 💾 Save System Tool for Unity
2+
3+
A modular, extensible and editor-friendly Save System for Unity, supporting multiple serialization formats (PlayerPrefs, JSON, XML), with visual debugging and management tools built using Odin Inspector.
4+
5+
---
6+
7+
## ✨ Features
8+
9+
- 🔁 **Strategy Pattern**: Plug-and-play architecture with interchangeable save methods
10+
- 💾 **Supported Formats**:
11+
- PlayerPrefs (with Odin serialization)
12+
- JSON file
13+
- XML file
14+
- 🧠 **Editor Tool**:
15+
- Odin Editor Window for previewing saved data
16+
- Visual decoding for PlayerPrefs, JSON, and XML
17+
- Deletion of individual entries
18+
- Auto refresh on changes
19+
- Clear indication of save locations per method
20+
- 🧱 **Extensible Architecture**:
21+
- Easy to add encryption, cloud saving, or custom file handling
22+
- Facade over save methods to switch runtime behavior
23+
24+
---
25+
26+
## 📁 File Formats
27+
28+
### 🧠 PlayerPrefs
29+
- Stored in system registry (Windows) or plist (macOS)
30+
- Serialized via Odin using Base64 + JSON
31+
32+
### 📄 JSON
33+
- Located at:
34+
```
35+
Application.persistentDataPath/player_data.json
36+
```
37+
- Fully human-readable
38+
39+
### 📂 XML
40+
- Located at:
41+
```
42+
Application.persistentDataPath/player_data.xml
43+
```
44+
- Readable and compatible with standard tools
45+
46+
---
47+
48+
## 🛠 Tech Stack
49+
- Unity 2022+
50+
- Odin Inspector
51+
- Sirenix Serialization
52+
53+
---
54+
55+
## 🧪 Example Data Structure
56+
57+
```csharp
58+
[Serializable]
59+
public class PlayerData
60+
{
61+
public string PlayerName;
62+
public int Level;
63+
public float Health;
64+
public Vector3 Position;
65+
public bool HasPremium;
66+
public GameSettings Settings;
67+
public InventoryData Inventory;
68+
public QuestProgress[] Quests;
69+
}
70+
```
71+
72+
---
73+
74+
## 📷 Screenshots
75+
76+
> _Coming soon..._
77+
78+
---
79+
80+
## 🧩 Usage
81+
82+
### Save:
83+
```csharp
84+
saveLoadFacade.Save(SaveMethod.Json, playerData);
85+
```
86+
87+
### Load:
88+
```csharp
89+
PlayerData loaded = saveLoadFacade.Load(SaveMethod.PlayerPrefs);
90+
```
91+
92+
93+
---
94+
95+
## 📌 Related Projects
96+
- [Grid Level Editor](https://github.com/SinlessDevil/Grid_Level_Editor)
97+
- [Language Change Tools](https://github.com/SinlessDevil/Language_Change_Tools)
98+
- [Inventory Tetris](https://github.com/SinlessDevil/Inventory_Tetris)
99+

0 commit comments

Comments
 (0)