WuhuIslandTesting/Library/PackageCache/com.stresslevelzero.marrow.sdk@1.2.0/Scripts/SLZ.Marrow/SLZ.Marrow.Zones/ZoneMusic.cs
2025-01-07 02:06:59 +01:00

49 lines
No EOL
2.5 KiB
C#

using SLZ.Marrow.Warehouse;
using UnityEngine;
using UnityEngine.Serialization;
namespace SLZ.Marrow.Zones
{
[AddComponentMenu("MarrowSDK/Zones/Zone Music")]
public class ZoneMusic : ZoneLinkItem
{
[Header("ZoneMusic")]
[FormerlySerializedAs("clipToCue")]
[Tooltip("Track to play.")]
public AudioClip clipMain;
[Tooltip("Track to play.")]
public DataCardReference<MonoDisc> track;
[Range(0f, 1f)]
[Tooltip("Recommended to keep volume below .3! You need to leave headroom for gunshots and impacts above your music, only turn higher if track is mixed quietly.")]
public float volume = .2f;
[Header("Music Actions")]
[Tooltip("Play track when entering zone. Fades in for fadeInTime.")]
public bool playOnEnter = true;
[Tooltip("Stop current track when entering zone. Fades out for fadeOutTime.")]
public bool stopOnEnter = false;
[Tooltip("Stop current track when exiting zone. Fades out for fadeOutTime.")]
public bool stopOnExit = false;
[Range(.1f, 10f)]
[Tooltip("Good practice to always fade at least a small ammount to prevent audio pops. Unit is in seconds.")]
public float fadeInTime = 1f;
[Range(.1f, 10f)]
[Tooltip("Good practice to always fade at least a small ammount to prevent audio pops. Unit is in seconds.")]
public float fadeOutTime = 3f;
[FormerlySerializedAs("onlyPlayOnce")]
[Tooltip("Select to only trigger music actions the first time this zone is triggered. Defaulted to true because I love it. - Brandon")]
public bool onlyTriggerOnce = true;
[Header("Looping options")]
[Tooltip("Select to loop track until something else plays or a ZoneMusic with StopOnEnter/Exit is triggered. Defaulted to false because it's better to leave them wanting more - Brandon")]
public bool loop = false;
[Tooltip("Optional intro track that will only play a single time before clip main is played. Useful if you want to have an attention grabbing intro that blends into a main body that cleanly loops.")]
public AudioClip clipIntro;
[Tooltip("Optional intro track that will only play a single time before clip main is played. Useful if you want to have an attention grabbing intro that blends into a main body that cleanly loops.")]
public DataCardReference<MonoDisc> introTrack;
[HideInInspector]
public static bool zoneMusicPasted = false;
}
}