mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-03-04 12:54:56 +08:00
fix: NotSynced parameters become synced when merging (#1347)
Closes: #1342
This commit is contained in:
parent
4405d7aa56
commit
30512c26e8
@ -87,7 +87,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
_component, PluginDefinition.Instance, paramType)
|
_component, PluginDefinition.Instance, paramType)
|
||||||
{
|
{
|
||||||
IsAnimatorOnly = animatorOnly,
|
IsAnimatorOnly = animatorOnly,
|
||||||
WantSynced = !p.localOnly,
|
WantSynced = !p.localOnly && !animatorOnly,
|
||||||
IsHidden = p.internalParameter,
|
IsHidden = p.internalParameter,
|
||||||
DefaultValue = p.defaultValue
|
DefaultValue = p.defaultValue
|
||||||
};
|
};
|
||||||
|
@ -136,6 +136,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
if (ResolvedParameter.syncType == ParameterSyncType.NotSynced)
|
if (ResolvedParameter.syncType == ParameterSyncType.NotSynced)
|
||||||
{
|
{
|
||||||
ResolvedParameter.syncType = info.ResolvedParameter.syncType;
|
ResolvedParameter.syncType = info.ResolvedParameter.syncType;
|
||||||
|
ResolvedParameter.localOnly = info.ResolvedParameter.localOnly;
|
||||||
} else if (ResolvedParameter.syncType != info.ResolvedParameter.syncType && info.ResolvedParameter.syncType != ParameterSyncType.NotSynced)
|
} else if (ResolvedParameter.syncType != info.ResolvedParameter.syncType && info.ResolvedParameter.syncType != ParameterSyncType.NotSynced)
|
||||||
{
|
{
|
||||||
TypeConflict = true;
|
TypeConflict = true;
|
||||||
@ -734,6 +735,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
ParameterConfig parameterConfig = param;
|
ParameterConfig parameterConfig = param;
|
||||||
parameterConfig.nameOrPrefix = remapTo;
|
parameterConfig.nameOrPrefix = remapTo;
|
||||||
parameterConfig.remapTo = remapTo;
|
parameterConfig.remapTo = remapTo;
|
||||||
|
parameterConfig.localOnly = parameterConfig.localOnly || param.syncType == ParameterSyncType.NotSynced;
|
||||||
var info = new ParameterInfo()
|
var info = new ParameterInfo()
|
||||||
{
|
{
|
||||||
ResolvedParameter = parameterConfig,
|
ResolvedParameter = parameterConfig,
|
||||||
|
@ -306,6 +306,45 @@ namespace modular_avatar_tests.RenameParametersTests
|
|||||||
|
|
||||||
Assert.AreNotEqual(fuga.name, "Fuga"); // should be auto-renamed
|
Assert.AreNotEqual(fuga.name, "Fuga"); // should be auto-renamed
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void AnimatorOnlyAndLocalParameterShouldNotSync()
|
||||||
|
{
|
||||||
|
var root = CreateRoot("x");
|
||||||
|
|
||||||
|
var c1 = CreateChild(root, "c1");
|
||||||
|
var c2 = CreateChild(root, "c2");
|
||||||
|
|
||||||
|
var p1 = c1.AddComponent<ModularAvatarParameters>();
|
||||||
|
var p2 = c2.AddComponent<ModularAvatarParameters>();
|
||||||
|
|
||||||
|
p1.parameters = new()
|
||||||
|
{
|
||||||
|
new()
|
||||||
|
{
|
||||||
|
nameOrPrefix = "a",
|
||||||
|
syncType = ParameterSyncType.NotSynced,
|
||||||
|
localOnly = false
|
||||||
|
}
|
||||||
|
};
|
||||||
|
p2.parameters = new()
|
||||||
|
{
|
||||||
|
new()
|
||||||
|
{
|
||||||
|
nameOrPrefix = "a",
|
||||||
|
syncType = ParameterSyncType.Int,
|
||||||
|
localOnly = true
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
AvatarProcessor.ProcessAvatar(root);
|
||||||
|
|
||||||
|
var expParams = root.GetComponent<VRCAvatarDescriptor>().expressionParameters.parameters
|
||||||
|
.Select(p => new KeyValuePair<string, VRCExpressionParameters.Parameter>(p.name, p))
|
||||||
|
.ToImmutableDictionary();
|
||||||
|
|
||||||
|
Assert.IsFalse(expParams["a"].networkSynced);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user