diff --git a/CHANGELOG.md b/CHANGELOG.md
index 822ca936..58d61cf1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,8 +10,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
### Fixed
+- Normalize the representation of the "default language" locale (#124)
### Changed
+- Adjusted hook processing order to improve compatibility with VRCFury (#122)
### Removed
@@ -19,6 +21,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Deprecated
+## [1.3.0-rc.3] - [2024-01-14]
+
+### Changed
+- Adjusted hook processing order to improve compatibility with VRCFury (#122)
+
## [1.3.0-rc.2] - [2024-01-07]
### Added
diff --git a/Editor/UI/Localization/Localizer.cs b/Editor/UI/Localization/Localizer.cs
index ea36e265..d92e1b17 100644
--- a/Editor/UI/Localization/Localizer.cs
+++ b/Editor/UI/Localization/Localizer.cs
@@ -40,7 +40,7 @@ public sealed class Localizer
///
public Localizer(string defaultLanguage, Func)>> loader)
{
- DefaultLanguage = defaultLanguage;
+ DefaultLanguage = CultureInfo.GetCultureInfo(defaultLanguage).Name;
LanguagePrefs.RegisterLanguage(defaultLanguage);
_localizationLoader = loader;
diff --git a/Editor/VRChat/BuildFrameworkPreprocessHook.cs b/Editor/VRChat/BuildFrameworkPreprocessHook.cs
index 47cff097..9cf2a68b 100644
--- a/Editor/VRChat/BuildFrameworkPreprocessHook.cs
+++ b/Editor/VRChat/BuildFrameworkPreprocessHook.cs
@@ -22,7 +22,8 @@ internal class ContextHolder : MonoBehaviour
internal class BuildFrameworkPreprocessHook : IVRCSDKPreprocessAvatarCallback
{
- public int callbackOrder => -5000;
+ // Must run before -10000 (VRCFury)
+ public int callbackOrder => -11000;
public bool OnPreprocessAvatar(GameObject avatarGameObject)
{
diff --git a/README.md b/README.md
index 40a8b485..1a855ce9 100644
--- a/README.md
+++ b/README.md
@@ -50,7 +50,7 @@ Passes are grouped into execution phases, which execute in the following order:
* Resolving - This is intended to run before any editor extensions modify the avatar, and is useful for rehydrating components with serialized state that need to refer to the pre-transformation avatar (e.g. if you have a path serialized to a string which you need to resolve to an object before objects start moving around)
* Generating - This is intended to run before editor extensions which primarily generate new objects and components for use by other systems.
* Transforming - This is intended as the "general-purpose" execution phase, where most extensions which transform avatars run.
-* Optimization - This is intended as an execution phase for optimization plugins which aren't intended to modify the avatar in a semantically-meaningful way.
+* Optimizing - This is intended as an execution phase for optimization plugins which aren't intended to modify the avatar in a semantically-meaningful way.
Within each phase, passes are always executed in the order in which they are declared in the plugin definition. However, depending on dependency declarations, passes from other plugins can be injected between your passes.
diff --git a/Runtime/ApplyOnPlayGlobalActivator.cs b/Runtime/ApplyOnPlayGlobalActivator.cs
index b7d0a044..9a148e41 100644
--- a/Runtime/ApplyOnPlayGlobalActivator.cs
+++ b/Runtime/ApplyOnPlayGlobalActivator.cs
@@ -22,7 +22,7 @@ internal static bool IsAv3EmuActive()
foreach (var root in scene.GetRootGameObjects())
foreach (var emulator in root.GetComponentsInChildren())
{
- if (emulator.isActiveAndEnabled && emulator.RunPreprocessAvatarHook)
+ if (emulator.enabled && emulator.gameObject.activeInHierarchy && emulator.RunPreprocessAvatarHook)
{
return true;
}
diff --git a/package.json b/package.json
index 7fb9ecaf..df8a6b80 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "nadena.dev.ndmf",
"displayName": "Non-Destructive Modular Framework",
- "version": "1.3.0-rc.2",
+ "version": "1.3.0-rc.3",
"unity": "2019.4",
"description": "A framework for building non-destructive plugins for VRChat Avatar 3.0",
"vrchatVersion": "2022.1.1",