mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-04-15 00:48:59 +08:00
In MA 1.11.x, while we corrected relative play audio paths where possible, we would leave them unchanged if no corresponding object was found. This meant that we maintained compatibility with older assets that uses absolute addressing for their Play Audio paths. This change restores that behavior.
38 lines
1.4 KiB
C#
38 lines
1.4 KiB
C#
#if MA_VRCSDK3_AVATARS_3_5_2_OR_NEWER
|
|
|
|
using nadena.dev.modular_avatar.core.editor;
|
|
using NUnit.Framework;
|
|
using UnityEditor.Animations;
|
|
using VRC.SDK3.Avatars.Components;
|
|
|
|
namespace modular_avatar_tests
|
|
{
|
|
public class PlayAudioRemapping : TestBase
|
|
{
|
|
[Test]
|
|
public void PlayAudioBehaviorsAreRemappedToCorrectPaths()
|
|
{
|
|
var prefab = CreatePrefab("PlayAudioRemapping.prefab");
|
|
AvatarProcessor.ProcessAvatar(prefab);
|
|
|
|
var fx = FindFxController(prefab);
|
|
var ac = (AnimatorController)fx.animatorController;
|
|
|
|
var layer = ac.layers[0];
|
|
var state = layer.stateMachine.states[0].state;
|
|
var playAudio = (VRCAnimatorPlayAudio) state.behaviours[0];
|
|
Assert.AreEqual("New Parent/Bone Proxy/Audio Source", playAudio.SourcePath);
|
|
|
|
var subState = layer.stateMachine.stateMachines[0].stateMachine.states[0].state;
|
|
var playAudio2 = (VRCAnimatorPlayAudio) subState.behaviours[0];
|
|
Assert.AreEqual("New Parent/Bone Proxy/Audio Source", playAudio2.SourcePath);
|
|
|
|
var absLayer = findFxLayer(prefab, "absolute");
|
|
state = absLayer.stateMachine.states[0].state;
|
|
playAudio = (VRCAnimatorPlayAudio) state.behaviours[0];
|
|
Assert.AreEqual("New Parent/Bone Proxy/Audio Source", playAudio.SourcePath);
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif |