Contenu du cours
Jeu de Combat dans Unity
Jeu de Combat dans Unity
Sons pour le Jeu
Auditeur Audio
L’Audio Listener
est un composant dans Unity qui agit comme les oreilles du jeu. Généralement attaché à la caméra principale ou au personnage du joueur, il capte tous les sons de la scène. Il ne doit y avoir qu’un seul Audio Listener
par scène.
Fonction : Il écoute toutes les sources audio et détermine ce que le joueur entend, capturant l’audio spatial 3D, permettant ainsi au joueur de percevoir la direction et la distance des sons.
Musique de fond avec Audio Source
Le composant Audio Source
est utilisé pour lire des clips audio dans Unity. Il peut être attaché à n'importe quel GameObject
, tel qu'un objet dédié à la musique de fond ou des objets dans la scène émettant des effets sonores.
Fonction : Le Audio Source
lit des clips audio et peut être contrôlé et configuré à l'aide de divers paramètres.
Principaux paramètres du composant Audio Source
AudioClip : Le fichier audio à lire par ce Audio Source
.
Output : Le Audio Mixer Group
par lequel cette source audio va acheminer son audio. Si aucun n'est spécifié, la sortie audio par défaut est utilisée.
Mute : Lorsque cette option est cochée, la source audio est muette et n'émet aucun son.
Bypass Effects : Ignore tous les effets appliqués à cette source audio, ce qui signifie qu'elle sera lue sans aucun effet audio appliqué.
Bypass Listener Effects : Ignore les effets appliqués au Audio Listener
.
Bypass Reverb Zones : Empêche la source audio d'être affectée par les zones de réverbération dans la scène.
Play On Awake : Lorsque cette option est cochée, la source audio commence à lire le clip audio assigné dès le début de la scène.
Loop : Lorsque cette option est cochée, la source audio boucle le clip audio, le rejouant en continu jusqu'à l'arrêt.
Priority : Détermine la priorité de la source audio. Des valeurs plus basses signifient une priorité plus élevée, ce qui est utile lorsque de nombreuses sources audio jouent simultanément.
Volume : Contrôle le volume de la source audio. Exemple : 0.263 signifie que l'audio sera lu à environ 26 % de son volume d'origine.
Pitch : Ajuste la hauteur du clip audio. La valeur par défaut est 1. Des valeurs plus basses ralentissent et abaissent le son, tandis que des valeurs plus élevées accélèrent et augmentent la hauteur.
Stereo Pan : Contrôle la panoramique stéréo de l'audio. Une valeur de -1 place l'audio complètement à gauche, 1 complètement à droite, et 0 le centre.
Spatial Blend : Détermine le mélange entre l'audio 2D et 3D. Une valeur de 0 rend le son entièrement 2D (non affecté par la position de l'auditeur), tandis que 1 le rend entièrement 3D (affecté par la position de l'auditeur).
Reverb Zone Mix : Ajuste la quantité de la source audio qui est mélangée dans les zones de réverbération de la scène. La valeur par défaut est 1.
Résumé
Audio Listener : Capture tout l'audio de la scène et est généralement attaché à la caméra principale ;
Audio Source : Lit des clips audio et peut être configuré avec divers paramètres pour contrôler la façon dont l'audio est lu et entendu ;
Principaux paramètres : Incluent AudioClip, Output, Mute, Bypass Effects, Play On Awake, Loop, Priority, Volume, Pitch, Stereo Pan, Spatial Blend et Reverb Zone Mix.
Ces composants fonctionnent ensemble pour gérer et contrôler l'expérience audio dans Unity, offrant des environnements sonores immersifs et dynamiques pour les jeux.
Lecture du son d'attaque
private void Update()
{
if (isAttacking)
{
RaycastHit2D rayCastHit = Physics2D.Raycast(transform.position, Vector2.right * transform.localScale.x, range, enemyLayer);
if (rayCastHit)
{
if(rayCastHit.transform.TryGetComponent(out IGetAttacked getAttacked))
{
// Play attack sound
attackAudioSource.Play();
// Apply damage to the enemy
getAttacked.GetAttacked(damage);
// Play attack effect
attackEffect.transform.position = rayCastHit.point;
attackEffect.Play();
// Stop attacking
isAttacking = false;
}
}
}
}
Explication de l'utilisation de l'AudioSource
Détection par Raycast : Un raycast est utilisé pour détecter si l’attaque du joueur touche un ennemi. Le raycast est lancé depuis la position du joueur dans la direction vers laquelle il fait face, avec une portée définie par attackRange
.
Vérification de la collision : Si le raycast touche un objet dans le enemyLayer
, le script vérifie si l’objet touché implémente l’interface IGetAttacked
.
Lecture du son d'attaque : Lorsqu’un impact est détecté et que l’ennemi peut être attaqué (interface IGetAttacked
implémentée), le son d’attaque est joué : attackAudioSource.Play()
.
Résumé
Dans la classe PlayerAttack
, AudioSource
joue un effet sonore lorsque le joueur attaque avec succès un ennemi, déclenché par attackAudioSource.Play()
dans la méthode Update
après un impact détecté par raycast. Cela fournit un retour auditif immédiat, renforçant l’immersion dans le jeu.
Merci pour vos commentaires !