![Dan.San :merci:](./images/smilies/73.gif)
![Dan.San :merci:](./images/smilies/73.gif)
![Dan.San ::d](./images/smilies/3.gif)
![Dan.San :mrgreen:](./images/smilies/14.gif)
Comment ça se passe si je veux que tous les sons s'arrête lorsque je clique sur un des objets audio source et quand on clique en de retour le systèm son redevienne à la normale ?
Est-ce qu'il ne faut pas que je crée un ARRAY avec tous les sons (18) pour pouvoir plus facilement les gérer ?
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FadeSound : MonoBehaviour
{
private float scale = 2.0f;
public float ToFade;
AudioSource m_MyAudioSource;
private void Start()
{
m_MyAudioSource = GetComponent<AudioSource>();
}
void OnMouseOver()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
{
// trace une ligne rouge de debug depuis le centre du transform jusqu'au point d'interessection du raycast.
Debug.DrawLine(transform.position, hit.point, Color.red);
// calcul de la distance entre deux points, en unité.
// scale est pour l'echelle, si ton plan fait 10 de coté, le scale devra etre de 5.0f
//pour que fade soit compris entre 0 ( contacte au centre) et 1 ( contacte àla limite du planeCollider)
ToFade = (transform.position - hit.point).magnitude / scale;
// Clamper ToFade pour qu'il ne depasse pas 1.0f ( si t'es dans un coin du planeCollider, tu sors du cerlce inscrit au carré
ToFade = Mathf.Clamp01(ToFade);
m_MyAudioSource.volume = 1 - ToFade; // j'ai mis un peux de temps a comprendre le truc du 1 - ToFade pour inversé le 0 et le 1
}
if (Input.GetMouseButton(0)) //code pour le maintien de la sourie
{
ToFade = 0;
m_MyAudioSource.volume = 1;
}
}
}
PS: J'ai testé le jeu