Files
Cielonos/Assets/Scripts/MainGame/Base/FunctionalAnimation/Payloads/PlaySoundFX.cs

48 lines
1.8 KiB
C#
Raw Normal View History

2025-12-23 19:47:06 -05:00
using System;
2026-05-23 08:27:50 -04:00
using Cielonos.MainGame.Inventory;
2026-02-13 09:22:11 -05:00
using Sirenix.OdinInspector;
2025-12-08 05:27:53 -05:00
using SLSUtilities.FunctionalAnimation;
2026-02-13 09:22:11 -05:00
using SLSUtilities.WwiseAssistance;
2025-12-08 05:27:53 -05:00
using UnityEngine;
namespace Cielonos.MainGame.FunctionalAnimation
{
2025-12-23 19:47:06 -05:00
[Serializable]
2025-12-08 05:27:53 -05:00
public class PlaySoundFX : FuncAnimPayloadBase
{
2026-02-13 09:22:11 -05:00
[WwiseEvent]
public uint soundID = AkUnitySoundEngine.AK_INVALID_PLAYING_ID;
[Tooltip("是否显示高级设置")]
public bool advancedSettings = false;
[ShowIf("advancedSettings")] public bool attachToBodyPart = false;
[ShowIf("@advancedSettings && attachToBodyPart")] public bool attachToMainBodyPart = true;
[ShowIf("@advancedSettings && attachToMainBodyPart")] public ViewObjectData.AttachBodyPartType mainBodyPart;
[ShowIf("@advancedSettings && !attachToMainBodyPart")] public string customBodyPart;
[ShowIf("advancedSettings")] public Vector3 positionOffset = Vector3.zero;
2025-12-08 05:27:53 -05:00
public override void Invoke()
{
2026-05-10 11:47:55 -04:00
if (mute) return;
2026-02-13 09:22:11 -05:00
if (!advancedSettings)
{
2026-06-05 04:21:00 -04:00
AudioManager.Post(soundID, Executor.CenterPosition);
2026-02-13 09:22:11 -05:00
}
else
{
2026-06-05 04:21:00 -04:00
Vector3 postPosition = Executor.CenterPosition;
2026-02-13 09:22:11 -05:00
2026-06-05 04:21:00 -04:00
if (attachToBodyPart && Character != null)
2026-02-13 09:22:11 -05:00
{
Transform part = attachToMainBodyPart ?
2026-06-05 04:21:00 -04:00
Character.bodyPartsSc.GetPart(mainBodyPart) :
Character.bodyPartsSc.GetPart(customBodyPart);
postPosition = part != null ? part.position : Executor.CenterPosition;
2026-02-13 09:22:11 -05:00
}
Vector3 finalPosition = postPosition + positionOffset;
AudioManager.Post(soundID, finalPosition);
}
2025-12-08 05:27:53 -05:00
}
}
}