Play sound when looking at an object for a certain amount of time
Im looking for a way of trigger an audio file when I look at the object (This case a steering wheel where I want to hear a horn) I already received a script from an awesome guy where I can move my main camera to the object if I look at that object for 2 seconds. In this case I want to trigger an audio file if I look at the steering wheel, I already looked for similar questions based on time instead of clicking. Im a noob in programming and some advice would be great! I have been looking into the event triggers and audio but I couldnt get anything to work the way I want to :(
 using UnityEngine;
 using System.Collections;
 
 public class Lookable : MonoBehaviour
 {    
     // The time that you have to look at a target to make the camera move towards that target
     public float highlightingTime = 1.5f;
     
     // hold a reference to the main cam for ray calculations
     // we store our current target to perform time calculations and move to it, once we've reached highlightingTime
     private Transform currentTarget = null;
     private float lookAtDuration = 0f;
     
     // Use this for initialization
     void Start()
     {
         if (!mainCam)
             mainCam = GetComponent<Camera>();
         
         // define the target layer mask to only recognize objects with a "Target" layer
         layerMask = 1 << LayerMask.NameToLayer ("Target");
         
     }
     
     // Update is called once per frame        
         RaycastHit hit;
         
         // draw a line that matches the raycast 
         Debug.DrawRay (mainCam.transform.position, mainCam.transform.forward * rayLength, Color.blue);
         
         if (Physics.Raycast(mainCam.transform.position, mainCam.transform.forward, out hit, rayLength, layerMask))
             // we have a hit!
             Transform target = hit.collider.transform;
             
             // is this a target that we are looking sine the last update loop?
             {
                 lookAtDuration += Time.deltaTime;
                 if (lookAtDuration >= highlightingTime)
                 {
                     // we now have looked at our target for a period of time
                     // next step is to move at its transform
                     mainCam.transform.parent.position = target.position;
                 }
         
                 target.gameObject.GetComponent<MeshRenderer>().material.SetColor("_Color", Color.red);
                 
             } else {
                 // if this is a new target that we are looking at, store it in our currentTarget
                 lookAtDuration = 0f;
             }
             
             if (currentTarget)
                 currentTarget.gameObject.GetComponent<MeshRenderer>().material.SetColor("_Color", Color.white);
             currentTarget = null;
             
         }
     }    
 }
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Stop AudioSource on Trigger!!! 1 Answer
Creating a Game Over after a Trigger/Event 1 Answer
Any way to fix an tag change problem? 1 Answer