Ещё звуки
-Добавлены звуки открытия и закрытия двери
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5c199e662eb9ae82ca7c062e04e34b7a
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac4f9fd8c1b50b1f1a9bf051e33cf431
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93a325154b3e9422da691ea4cfafad72
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -5,33 +5,58 @@
|
||||
public class Door : OpenableObject
|
||||
{
|
||||
[SerializeField] private float rotateByDegrees = -90f;
|
||||
[SerializeField] private float enemyDetectionRange = 3f; // Радиус обнаружения врага
|
||||
[SerializeField] private Collider doorCollider; // Коллайдер двери
|
||||
[SerializeField] private float openTime = 0.5f; // Время открытия двери (уменьшено для скорости)
|
||||
[SerializeField] private float closeTime = 1f; // Время закрытия двери
|
||||
[SerializeField] private bool isForbiddenForEnemy = false; // Время закрытия двери
|
||||
[SerializeField] private float enemyDetectionRange = 3f;
|
||||
[SerializeField] private Collider doorCollider;
|
||||
[SerializeField] private float openTime = 0.5f;
|
||||
[SerializeField] private float closeTime = 1f;
|
||||
[SerializeField] private bool isForbiddenForEnemy = false;
|
||||
[SerializeField] public AudioClip openSound;
|
||||
[SerializeField] public AudioClip closeSound;
|
||||
|
||||
private Vector3 startRotation;
|
||||
private Vector3 endRotation;
|
||||
private bool isMoving;
|
||||
private bool isOpen;
|
||||
private AudioSource audioSource;
|
||||
|
||||
void Start()
|
||||
{
|
||||
// Проверяем и добавляем AudioSource
|
||||
audioSource = GetComponent<AudioSource>();
|
||||
if (audioSource == null)
|
||||
{
|
||||
audioSource = gameObject.AddComponent<AudioSource>();
|
||||
audioSource.playOnAwake = false;
|
||||
audioSource.loop = false;
|
||||
audioSource.spatialBlend = 1f;
|
||||
audioSource.volume = 0.7f;
|
||||
Debug.Log($"Добавлен AudioSource на {gameObject.name}");
|
||||
}
|
||||
|
||||
startRotation = transform.rotation.eulerAngles;
|
||||
endRotation = startRotation + Vector3.up * rotateByDegrees;
|
||||
isOpen = false;
|
||||
|
||||
// Проверяем звуки
|
||||
if (openSound == null) Debug.LogWarning($"Дверь {gameObject.name}: openSound не назначен!");
|
||||
if (closeSound == null) Debug.LogWarning($"Дверь {gameObject.name}: closeSound не назначен!");
|
||||
|
||||
// Синхронизируем громкость
|
||||
GameUIManager uiManager = FindObjectOfType<GameUIManager>();
|
||||
if (uiManager != null && uiManager.soundVolumeSlider != null)
|
||||
{
|
||||
UpdateVolume(uiManager.soundVolumeSlider.value);
|
||||
}
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
// Проверяем, есть ли враг рядом, и дверь не движется
|
||||
if (!isMoving && !isOpen && !isForbiddenForEnemy)
|
||||
{
|
||||
Collider[] colliders = Physics.OverlapSphere(transform.position, enemyDetectionRange);
|
||||
foreach (Collider col in colliders)
|
||||
{
|
||||
if (col.CompareTag("Enemy")) // У врага должен быть тег "Enemy"
|
||||
if (col.CompareTag("Enemy"))
|
||||
{
|
||||
StartCoroutine(Open());
|
||||
break;
|
||||
@ -42,10 +67,27 @@ void Update()
|
||||
|
||||
public override IEnumerator Open()
|
||||
{
|
||||
if (IsLockedByKeypad)
|
||||
{
|
||||
Debug.Log("Дверь заблокирована кодом!");
|
||||
yield break;
|
||||
}
|
||||
|
||||
isMoving = true;
|
||||
isOpen = true;
|
||||
|
||||
// Отключаем коллайдер, чтобы враг мог пройти
|
||||
// Проигрываем звук открывания
|
||||
if (openSound != null)
|
||||
{
|
||||
audioSource.clip = openSound;
|
||||
audioSource.Play();
|
||||
Debug.Log($"Дверь {gameObject.name} открывается!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning($"Дверь {gameObject.name}: openSound не имеет звука!");
|
||||
}
|
||||
|
||||
if (doorCollider != null)
|
||||
{
|
||||
doorCollider.enabled = false;
|
||||
@ -55,7 +97,7 @@ public override IEnumerator Open()
|
||||
while (timer < 1f)
|
||||
{
|
||||
timer += Time.deltaTime / openTime;
|
||||
openOrCloseLerp = timer; // Обновляем значение для возможного использования в базовом классе
|
||||
openOrCloseLerp = timer;
|
||||
transform.rotation = Quaternion.Lerp(Quaternion.Euler(startRotation), Quaternion.Euler(endRotation), timer);
|
||||
yield return null;
|
||||
}
|
||||
@ -68,7 +110,18 @@ public override IEnumerator Close()
|
||||
isMoving = true;
|
||||
isOpen = false;
|
||||
|
||||
// Включаем коллайдер обратно
|
||||
// Проигрываем звук закрывания
|
||||
if (closeSound != null)
|
||||
{
|
||||
audioSource.clip = closeSound;
|
||||
audioSource.Play();
|
||||
Debug.Log($"Дверь {gameObject.name} закрывается!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning($"Дверь {gameObject.name}: closeSound не имеет звука!");
|
||||
}
|
||||
|
||||
if (doorCollider != null)
|
||||
{
|
||||
doorCollider.enabled = true;
|
||||
@ -78,7 +131,7 @@ public override IEnumerator Close()
|
||||
while (timer < 1f)
|
||||
{
|
||||
timer += Time.deltaTime / closeTime;
|
||||
openOrCloseLerp = 1f - timer; // Обновляем для обратного движения
|
||||
openOrCloseLerp = 1f - timer;
|
||||
transform.rotation = Quaternion.Lerp(Quaternion.Euler(startRotation), Quaternion.Euler(endRotation), 1f - timer);
|
||||
yield return null;
|
||||
}
|
||||
@ -86,7 +139,15 @@ public override IEnumerator Close()
|
||||
isMoving = false;
|
||||
}
|
||||
|
||||
// Визуализация радиуса обнаружения в редакторе
|
||||
public void UpdateVolume(float volume)
|
||||
{
|
||||
if (audioSource != null)
|
||||
{
|
||||
audioSource.volume = volume * 0.8f;
|
||||
Debug.Log($"Door: Громкость звука двери {gameObject.name} = {audioSource.volume}");
|
||||
}
|
||||
}
|
||||
|
||||
void OnDrawGizmosSelected()
|
||||
{
|
||||
Gizmos.color = Color.green;
|
||||
|
||||
@ -54,6 +54,9 @@ void Start()
|
||||
mouseSensitivityInput.onEndEdit.AddListener(UpdateMouseSensitivityFromInput);
|
||||
if (soundVolumeInput != null)
|
||||
soundVolumeInput.onEndEdit.AddListener(UpdateSoundVolumeFromInput);
|
||||
|
||||
// Инициализируем громкость для всех звуков
|
||||
UpdateSoundVolume(soundVolumeSlider.value);
|
||||
}
|
||||
|
||||
void Update()
|
||||
@ -111,6 +114,9 @@ void GoToMainMenu()
|
||||
void ExitGame()
|
||||
{
|
||||
Application.Quit();
|
||||
#if UNITY_EDITOR
|
||||
UnityEditor.EditorApplication.isPlaying = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
void UpdateMouseSensitivity(float value)
|
||||
@ -126,12 +132,23 @@ void UpdateMouseSensitivity(float value)
|
||||
|
||||
void UpdateSoundVolume(float value)
|
||||
{
|
||||
AudioListener.volume = value;
|
||||
|
||||
// Обновляем громкость шагов
|
||||
FootstepSounds footstep = FindObjectOfType<FootstepSounds>();
|
||||
if (footstep != null)
|
||||
{
|
||||
footstep.audioSource.volume = value; // Или value * 0.8f для тише
|
||||
footstep.audioSource.volume = value * 0.8f;
|
||||
Debug.Log($"GameUIManager: Громкость шагов = {value * 0.8f}");
|
||||
}
|
||||
AudioListener.volume = value;
|
||||
|
||||
// Обновляем громкость всех дверей
|
||||
Door[] doors = FindObjectsOfType<Door>();
|
||||
foreach (Door door in doors)
|
||||
{
|
||||
door.UpdateVolume(value);
|
||||
}
|
||||
|
||||
if (soundVolumeInput != null)
|
||||
soundVolumeInput.text = value.ToString("F2");
|
||||
}
|
||||
|
||||
BIN
1 laba/Assets/Sound/close-door.wav
(Stored with Git LFS)
Normal file
23
1 laba/Assets/Sound/close-door.wav.meta
Normal file
@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5fa0f668df1407fff9074e10c887cea6
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
1 laba/Assets/Sound/open-door.wav
(Stored with Git LFS)
Normal file
23
1 laba/Assets/Sound/open-door.wav.meta
Normal file
@ -0,0 +1,23 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7c93f9d260590624960c016d601afc8
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 8
|
||||
defaultSettings:
|
||||
serializedVersion: 2
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
preloadAudioData: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
1 laba/Library/Artifacts/05/055facc80d82f4c7547e909b8c40d2bf
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
1 laba/Library/Artifacts/07/07ae42f0c9143b740541f073be80fc7e
Normal file
BIN
1 laba/Library/Artifacts/0c/0cf28227ff58fdee17d4db353d67f910
Normal file
BIN
1 laba/Library/Artifacts/12/12bad4961aa5a0cd390946f9f21a9409
Normal file
BIN
1 laba/Library/Artifacts/1d/1d20a063d17cc01c18bc85ac2e36573a
Normal file
BIN
1 laba/Library/Artifacts/22/22c673fe2b295695654130aef489d2f5
Normal file
BIN
1 laba/Library/Artifacts/2d/2d893a089d6a604c470deaf20bd47328
Normal file
|
Before Width: | Height: | Size: 5.8 KiB |
BIN
1 laba/Library/Artifacts/34/3429081da5def1ea13e9f6405f83a06c
Normal file
BIN
1 laba/Library/Artifacts/46/460364fd96de3fc43e6cabecb56fc4dd
Normal file
BIN
1 laba/Library/Artifacts/46/4688558751808949e43408c7168c523a
Normal file
BIN
1 laba/Library/Artifacts/4f/4f4e162082d2a560a9a8342338775134
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
1 laba/Library/Artifacts/53/53cc1955832455dfc260a47321b0291a
Normal file
BIN
1 laba/Library/Artifacts/85/857154befcac704dee4fa113cfc65825
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
1 laba/Library/Artifacts/95/95d9af0be93c1f32bde6e11ffe8f5e43
Normal file
|
Before Width: | Height: | Size: 572 B |
BIN
1 laba/Library/Artifacts/a1/a1ea025647de02480ec310570f87196a
Normal file
BIN
1 laba/Library/Artifacts/b5/b51d16a59d988b5503b50425a384b222
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
1 laba/Library/Artifacts/c0/c07f5b101808a34b3d44abb68ea5d54b
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
1 laba/Library/Artifacts/c1/c172281307ee129dd0787d724bf01f49
Normal file
BIN
1 laba/Library/Artifacts/ca/ca3b68fca8ee76fe791f25fac9e952b4
Normal file
BIN
1 laba/Library/Artifacts/ce/ce08741016ace89bf3e520ab8d379783
Normal file
BIN
1 laba/Library/Artifacts/cf/cff95d6bb4fa3d68e049ea96db459534
Normal file
BIN
1 laba/Library/Artifacts/d2/d2c59d031f8744015f4bcc68739f8c11
Normal file
BIN
1 laba/Library/Artifacts/e1/e11380d2ee504ed25c38ff099ffd6796
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
1 laba/Library/Artifacts/f5/f567decc65fc5df746402ef69c227810
Normal file
|
After Width: | Height: | Size: 1.5 KiB |