
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
소리기능을 담당하는 코드 (audioSource.PlayOneShot(clip);)를 추가하자 카드 match가 발생하지 않고 에러메세지가 뜹니다.
해당 코드를 제거하자 정상적으로 작동하고요. 왜 이런 에러가 발생하는지 궁금합니다.
아래는 GameManager 의 코드입니다.
public class GameManager : MonoBehaviour
{
public static GameManager instance;
public Card firstCard;
public Card secondCard;
public Text timeTxt;
public GameObject endTxt;
AudioSource audioSource;
public AudioClip clip;
public int cardCount = 0;
float time = 0.0f;
private void Awake()
{
if (instance == null)
{
instance = this;
}
}
// Start is called before the first frame update
void Start()
{
Time.timeScale = 1.0f;
audioSource = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
time += Time.deltaTime;
timeTxt.text = time.ToString("N2");
float End = time;
if(Time.time >= 30.0f)
{
endTxt.SetActive(true);
Time.timeScale = 0.0f;
}
}
public void Matched()
{
if(firstCard.idx == secondCard.idx)
{
//파괴해라
audioSource.PlayOneShot(clip);
firstCard.DestroyCard();
secondCard.DestroyCard();
cardCount -= 2;
if(cardCount == 0)
{
Time.timeScale = 0.0f;
endTxt.SetActive(true);
}
}
else
{
// 닫아라
firstCard.CloseCard();
secondCard.CloseCard();
}
firstCard = null;
secondCard = null;
}
}
발생한 에러내용 전문입니다.

ArgumentNullException: Value cannot be null.
Parameter name: source
UnityEngine.AudioSource.PlayOneShot (UnityEngine.AudioClip clip, System.Single volumeScale) (at <d326b93cf53f4f72b81cc37d60545f3d>:0)
UnityEngine.AudioSource.PlayOneShot (UnityEngine.AudioClip clip) (at <d326b93cf53f4f72b81cc37d60545f3d>:0)
GameManager.Matched () (at Assets/Scripts/GameManager.cs:60)
Card.OpenCard () (at Assets/Scripts/Card.cs:56)
UnityEngine.Events.InvokableCall.Invoke () (at <2d8783c7af0442318483a199a473c55b>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <2d8783c7af0442318483a199a473c55b>:0)
UnityEngine.UI.Button.Press () (at ./Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:70)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at ./Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:114)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at ./Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:57)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at ./Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:272)
UnityEngine.EventSystems.EventSystem:Update() (at ./Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:530)
