You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C#
		
	
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
namespace Autohand {
 | 
						|
    public class PlacePointSoundEffects : MonoBehaviour {
 | 
						|
        public PlacePoint placePoint;
 | 
						|
        public AudioSource audioSource;
 | 
						|
        public AudioClip highlightSound;
 | 
						|
        public AudioClip unhighlightSound;
 | 
						|
        public AudioClip placeSound;
 | 
						|
        public AudioClip removeSound;
 | 
						|
 | 
						|
        bool started = false;
 | 
						|
        float startDelay = 1f;
 | 
						|
        Coroutine waitToActivateRountine;
 | 
						|
 | 
						|
        void OnEnable() {
 | 
						|
            if(audioSource == null)
 | 
						|
                audioSource = GetComponent<AudioSource>();
 | 
						|
            waitToActivateRountine = StartCoroutine(WaitToActivate());
 | 
						|
        }
 | 
						|
 | 
						|
        void OnDisable() {
 | 
						|
            if(waitToActivateRountine != null) {
 | 
						|
                StopCoroutine(waitToActivateRountine);
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                placePoint.OnHighlight.RemoveListener(OnHighlight);
 | 
						|
                placePoint.OnStopHighlight.RemoveListener(OnUnhighlight);
 | 
						|
                placePoint.OnPlace.RemoveListener(OnPlace);
 | 
						|
                placePoint.OnRemove.RemoveListener(OnRemove);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        IEnumerator WaitToActivate() {
 | 
						|
            yield return new WaitForSeconds(startDelay);
 | 
						|
            started = true;
 | 
						|
            placePoint.OnHighlight.AddListener(OnHighlight);
 | 
						|
            placePoint.OnStopHighlight.AddListener(OnUnhighlight);
 | 
						|
            placePoint.OnPlace.AddListener(OnPlace);
 | 
						|
            placePoint.OnRemove.AddListener(OnRemove);
 | 
						|
        }
 | 
						|
 | 
						|
        void OnHighlight(PlacePoint placePoint, Grabbable grabbable) {
 | 
						|
            if(highlightSound != null && audioSource.enabled && placePoint.enabled)
 | 
						|
                audioSource.PlayOneShot(highlightSound);
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
        void OnUnhighlight(PlacePoint placePoint, Grabbable grabbable) {
 | 
						|
            if(unhighlightSound != null && audioSource.enabled && placePoint.enabled)
 | 
						|
                audioSource.PlayOneShot(unhighlightSound);
 | 
						|
        }
 | 
						|
 | 
						|
        void OnPlace(PlacePoint placePoint, Grabbable grabbable) {
 | 
						|
            if(placeSound != null && audioSource.enabled && placePoint.enabled)
 | 
						|
                audioSource.PlayOneShot(placeSound);
 | 
						|
        }
 | 
						|
 | 
						|
        void OnRemove(PlacePoint placePoint, Grabbable grabbable) {
 | 
						|
            if(removeSound != null && audioSource.enabled && placePoint.enabled)
 | 
						|
                audioSource.PlayOneShot(removeSound);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |