커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
5-4강) 재질문
undefined주차
북마크
장*헌
댓글
12
추천
0
조회수
20
조회수
20
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


소리기능을 담당하는 코드 (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)






취소
 공유
취소
댓글 0
댓글 알림
나의얼굴