with one click
f8-features-exceltool-workflow
// Use when implementing or troubleshooting ExcelTool feature workflows — config table loading, Excel binary/JSON generation, variant support, and runtime data access in F8Framework.
// Use when implementing or troubleshooting ExcelTool feature workflows — config table loading, Excel binary/JSON generation, variant support, and runtime data access in F8Framework.
| name | f8-features-exceltool-workflow |
| description | Use when implementing or troubleshooting ExcelTool feature workflows — config table loading, Excel binary/JSON generation, variant support, and runtime data access in F8Framework. |
⚠️ IMPORTANT: Before using this feature, you MUST formally initialize F8Framework in the launch sequence. Ensure
ModuleCenter.Initialize(this);has run first, then create the required module, for exampleFF8.Config = ModuleCenter.CreateModule<F8DataManager>();.
| Class | Role |
|---|---|
ConfigManager | Core module. Access via FF8.Config. Loads and queries config data. |
ReadExcel | Reads Excel files. Extensible for custom types. |
// Load single sheet by name
Sheet1 sheet1 = FF8.Config.Load<Sheet1>("Sheet1");
// Sync load all
FF8.Config.LoadAll();
// Async load all (coroutine)
yield return FF8.Config.LoadAllAsyncIEnumerator();
// Async load all (async/await — WebGL compatible)
await FF8.Config.LoadAllAsyncTask();
// Runtime Excel reload (development only)
FF8.Config.RuntimeLoadAll();
// Get single row by ID
LogF8.Log(FF8.Config.GetSheet1ByID(2).name);
// Iterate all rows
foreach (var item in FF8.Config.GetSheet1())
{
LogF8.Log(item.Key);
LogF8.Log(item.Value.name);
}
// Set global variant name
FF8.Config.VariantName = "English";
// Set per-sheet variant name (higher priority)
Sheet1.VariantName = "English";
char, bool, byte, short, int, long, float, double, decimal, str/string, obj/object, datetime, sbyte, ushort, uint, ulong
Unity types: vec2/vector2, vec3/vector3, vec4/vector4, vec2int/vector2int, vec3int/vector3int, quat/quaternion, color, color32, matrix4x4
Standard JSON specification type: json
int[], string[][], obj[][][]list<obj>dict<int,list<string>>valuetuple<int,string> (up to 7 types)hashset<int>enum<name,int,Flags>{Value1=1,Value2=2}variant<name,variantName> — switch configs by variant nameid emptytype or name emptyAssets/StreamingAssets/config/ directory.int type id (unique primary key).Assets/F8Framework/ConfigData/ and Assets/AssetBundles/Config/BinConfigData/.FF8.Config.LoadAll() before accessing data.variant<fieldName,variantName> columns.| Error | Cause | Solution |
|---|---|---|
| Compilation errors after F8 | Naming conflicts in generated classes | Check ConfigData/ for duplicates, clean and regenerate |
| Data class not found | Sheet name mismatch | Ensure sheet name matches exactly (case-sensitive) |
| Android runtime Excel read fails | StreamingAssets not directly readable | Use SyncStreamingAssetsLoader or binary cache mode |
| Dictionary key error in JSON export | Container key type not supported in JSON | Use binary format which supports all key types |
FF8.Asset.Use when implementing or troubleshooting Tween feature workflows — tween animations, sequences, chain calls, UI relative motion, and coroutine/async support in F8Framework.
Use when implementing or troubleshooting Audio feature workflows — BGM, voice, SFX, 3D audio, volume control, and AudioMixer in F8Framework.
Use when working with Module editor tools — right-click context menu for creating Module, ModuleMono, StaticModule, and ActivityModule templates in F8Framework.
Use when implementing or troubleshooting Module feature workflows — ModuleCenter lifecycle, module creation, StaticModule, ActivityModule, update attributes in F8Framework.
Use as the routing skill for selecting the correct F8Framework layer skill chain across foundation, features, editor, tools, and build.
Use when working with Assembly Reflection tools — type discovery, reflection utilities, and assembly scanning in F8Framework.