From d85172aa7e63c970d9e4c816bd275c9b1e4ff051 Mon Sep 17 00:00:00 2001
From: mzh <3213885650@qq.com>
Date: Fri, 9 Jan 2026 17:56:38 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=90m=E3=80=91=E4=BF=AE=E5=A4=8D=E8=83=8C?=
=?UTF-8?q?=E6=99=AF=E9=9F=B3=E4=B9=90=E4=B8=8D=E6=92=AD=E7=9A=84=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../04.AudioCore/RunTime/Base/MusicPlayer.cs | 64 +++++++++----------
Assets/04.AudioCore/package.json | 2 +-
2 files changed, 31 insertions(+), 35 deletions(-)
diff --git a/Assets/04.AudioCore/RunTime/Base/MusicPlayer.cs b/Assets/04.AudioCore/RunTime/Base/MusicPlayer.cs
index a899ac6..c7a722e 100644
--- a/Assets/04.AudioCore/RunTime/Base/MusicPlayer.cs
+++ b/Assets/04.AudioCore/RunTime/Base/MusicPlayer.cs
@@ -22,8 +22,8 @@ namespace Stary.Evo.AudioCore
poolObject = new GameObject(GetType().Name);
}
- audioSource1 = CreatAudioSource("audioSource1", out AudioSource source1);
- audioSource2 = CreatAudioSource("audioSource2", out AudioSource source2);
+ CreatAudioSource("audioSource1", out audioSource1);
+ CreatAudioSource("audioSource2", out audioSource2);
}
///
@@ -41,7 +41,7 @@ namespace Stary.Evo.AudioCore
audioData = Initialize(audioData);
- if (!string.IsNullOrEmpty(audioData.packageName) && !string.IsNullOrEmpty(audioData.packageName))
+ if (!string.IsNullOrEmpty(audioData.packageName) && !string.IsNullOrEmpty(audioData.assetName))
{
var clip = await Resources.LoadAssetAsync(audioData.packageName, audioData.assetName);
if (clip == null)
@@ -60,7 +60,7 @@ namespace Stary.Evo.AudioCore
return;
}
- if (audioSource1 == null)
+ if (audioSource1 != null && audioSource1.isPlaying == false)
{
audioSource1.clip = audioData.clip;
audioSource1.volume = audioData.volume;
@@ -93,45 +93,42 @@ namespace Stary.Evo.AudioCore
currentAudioSource.Play();
FadeMusic(audioSource1, audioData.fadeDuration, audioSource2);
}
- else
+ else if (audioSource2 != null && audioSource2.isPlaying == false)
{
- if (audioSource2 == null)
- {
- audioSource2.clip = audioData.clip;
- audioSource2.volume = audioData.volume;
+ audioSource2.clip = audioData.clip;
+ audioSource2.volume = audioData.volume;
- // 设置2D与3D音频
- if (audioData.is3DAudio)
+ // 设置2D与3D音频
+ if (audioData.is3DAudio)
+ {
+ audioSource2.transform.position = audioData.audio3DPosition;
+ audioSource2.spatialBlend = 1;
+ audioSource2.minDistance = 1f;
+ if (audioData.audio3DMaxDistance != 0)
{
- audioSource2.transform.position = audioData.audio3DPosition;
- audioSource2.spatialBlend = 1;
- audioSource2.minDistance = 1f;
- if (audioData.audio3DMaxDistance != 0)
- {
- audioSource2.maxDistance = audioData.audio3DMaxDistance;
- }
- else
- {
- // 默认3D最大距离为3米
- audioSource2.maxDistance = 3f;
- }
+ audioSource2.maxDistance = audioData.audio3DMaxDistance;
}
else
{
- audioSource2.transform.position = Vector3.zero;
- audioSource2.spatialBlend = 0;
- audioSource2.minDistance = 1f;
- audioSource2.maxDistance = 500f;
+ // 默认3D最大距离为3米
+ audioSource2.maxDistance = 3f;
}
-
- currentAudioSource = audioSource2;
- currentAudioSource.Play();
- FadeMusic(audioSource2, audioData.fadeDuration, audioSource1);
}
else
{
- Debug.LogWarning("UnityEvo:已同时存在两个背景乐在切换");
+ audioSource2.transform.position = Vector3.zero;
+ audioSource2.spatialBlend = 0;
+ audioSource2.minDistance = 1f;
+ audioSource2.maxDistance = 500f;
}
+
+ currentAudioSource = audioSource2;
+ currentAudioSource.Play();
+ FadeMusic(audioSource2, audioData.fadeDuration, audioSource1);
+ }
+ else
+ {
+ Debug.LogWarning("UnityEvo:已同时存在两个背景乐在切换");
}
}
@@ -215,13 +212,12 @@ namespace Stary.Evo.AudioCore
/// 创建一个新的AudioSource对象
///
///
- private AudioSource CreatAudioSource(string name, out AudioSource source)
+ private void CreatAudioSource(string name, out AudioSource source)
{
source = new GameObject(name).AddComponent();
source.gameObject.transform.SetParent(poolObject.transform);
source.transform.SetParent(poolObject.transform); // 将新对象作为当前对象的子对象
source.playOnAwake = false; // 添加 AudioSource 组件并禁用自动播放
- return source;
}
public void Dispose()
diff --git a/Assets/04.AudioCore/package.json b/Assets/04.AudioCore/package.json
index a19bfa4..c457d55 100644
--- a/Assets/04.AudioCore/package.json
+++ b/Assets/04.AudioCore/package.json
@@ -1,6 +1,6 @@
{
"name": "com.staryevo.audiocore",
- "version": "1.1.1",
+ "version": "1.1.2",
"displayName": "04.AudioCore",
"description": "音频播放工具",
"unity": "2021.3",