```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
public class AudioManager : MonoBehaviour
{
public GameObject tarGet;
public VideoPlayer[] vedios;
public GameObject[] vedObjs;
public float distance;
private float checkTime;
float temp;
private const float maxDis = 4f;
private VideoPlayer videoPlayer;
void Start()
{
//videoPlayer = GetComponent<VideoPlayer>();
//videoPlayer.audioOutputMode = VideoAudioOutputMode.Direct;
vedios = new VideoPlayer[transform.childCount];
vedObjs = new GameObject[transform.childCount];
for (int i = 0; i < transform.childCount; i++)
{
vedObjs[i] = transform.GetChild(i).gameObject;
vedios[i] = transform.GetChild(i).gameObject.GetComponent<VideoPlayer>();
}
for (int i = 0; i < vedObjs.Length; i++)
{
vedObjs[i].GetComponent<VideoPlayer>().SetDirectAudioVolume(0,0.1f);
}
}
void Update()
{
//if (Input.GetKeyDown(KeyCode.Space))
//{
// //print(videoPlayer.canSetDirectAudioVolume);
// //videoPlayer.isLooping = true;
// //videoPlayer.SetDirectAudioVolume(0,0.5f);
//}
if (checkTime >= 0.5f)
{
Judge();
checkTime = 0;
}
checkTime += Time.deltaTime;
}
private float Judge()
{
float[] item = new float[transform.childCount];
for (int i = 0; i < transform.childCount; i++)
{
item[i] = Vector3.Distance(tarGet.transform.position, vedObjs[i].transform.position);
//print(Vector3.Distance(tarGet.transform.position, vedObjs[i].transform.position));
temp = item[0];
}
for (int i = 0; i < item.Length; i++)
{
if (item[i] <= temp)
{
temp = item[i];
}
}
ChangeVolme(temp);
//Debug.Log(temp);
return temp;
}
private void ChangeVolme(float temp)
{
for (int i = 0; i < vedObjs.Length; i++)
{
if (temp == Vector3.Distance(tarGet.transform.position, vedObjs[i].transform.position))
{
//Debug.Log(vedObjs[i].name);
Value(vedObjs[i].name);
}
}
}
private void Value(string name)
{
for (int i = 0; i < vedObjs.Length; i++)
{
//vedObjs[i].GetComponent<AudioSource>().volume = 0f;
vedObjs[i].GetComponent<VideoPlayer>().SetDirectAudioVolume(0, 0f);
}
for (int i = 0; i < vedObjs.Length; i++)
{
if (vedObjs[i].name == name)
{
VideoPlayer audi = vedObjs[i].GetComponent<VideoPlayer>();
//audi.volume = 1 - temp / maxDis;
audi.SetDirectAudioVolume(0,1-temp/maxDis);
}
}
}
}