커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
광고 붙이기 오류입니다!
undefined주차
북마크
문*우
댓글
5
추천
0
조회수
35
조회수
35
답변 완료

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

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


안녕하세요. 현재 5 주차 광고 붙이기 진행 중 입니다.

폰트 문제인가 싶어, 모두 LegacyRuntime으로 폰트를 수정해도 문제고,

제공받은 폰트로 수정해도 오류가 생깁니다.


오류 콘솔창을 보면

adsManager:Awake() (at Assets/Scripts/adsManager.cs:28)



이 부분이 문제인가 싶어서 확인해도 수정 할 방법이 없네요.. 스택오버플로우에도 동일한 문제는 보이지 않아 질문 드립니다!


항상 고생 많으십니다.


스파르타 즉문즉답스파르타 즉문즉답





adsManager.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Advertisements;

public class adsManager : MonoBehaviour
{

  public static adsManager I;

  string adType;
  string gameId;
  void Awake()
  {
    I = this;

    if (Application.platform == RuntimePlatform.IPhonePlayer)
    {
      adType = "Rewarded_iOS";
      gameId = "5362444";
    }
    else
    {
      adType = "Rewarded_Android";
      gameId = "5362445";
    }

    Advertisement.Initialize(gameId, true);
  }

  public void ShowRewardAd()
  {
    if (Advertisement.IsReady())
    {
      ShowOptions options = new ShowOptions { resultCallback = ResultAds };
      Advertisement.Show(adType, options);
    }
  }

  void ResultAds(ShowResult result)
  {
    switch (result)
    {
      case ShowResult.Failed:
        Debug.LogError("광고 보기에 실패했습니다.");
        break;
      case ShowResult.Skipped:
        Debug.Log("광고를 스킵했습니다.");
        break;
      case ShowResult.Finished:
        // 광고 보기 보상 기능 
        gameManager.I.retryGame();
        break;
    }
  }


  • endTxt.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class endTxt : MonoBehaviour
{
  // Start is called before the first frame update
  void Start()
  {
     
  }

  // Update is called once per frame
  void Update()
  {
     
  }
  public void retryGame()
  {
    adsManager.I.ShowRewardAd();
  }
}


  • gameManager.cs


using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using System.Linq;
using Unity.VisualScripting.Antlr3.Runtime.Misc;
using UnityEngine.Rendering;
using UnityEngine.SceneManagement;

public class gameManager : MonoBehaviour
{
  public Text timeTxt;
  public GameObject card;
  float time;
  public static gameManager I;
  public GameObject firstCard;
  public GameObject secondCard;
  public GameObject endTxt; // txt가 아닌, gameObject로 해야 제어 가능!
  public AudioClip match;
  public AudioSource audioSource;

  private void Awake()
  {
    I = this;
  }

  // Start is called before the first frame update
  void Start()
  {
    Time.timeScale = 1.0f;

    int[] rtans = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };

    rtans = rtans.OrderBy(item => Random.Range(-1.0f, 1.0f)).ToArray();

    for(int i = 0; i < 16; i++)
    {
      GameObject newCard = Instantiate(card);
      newCard.transform.parent = GameObject.Find("cards").transform;

      float x = (i / 4) * 1.4f - 2.1f;
      float y = (i % 4) * 1.4f - 3.0f;
      newCard.transform.position = new Vector3(x, y, 0);

      string rtanName = "rtan" + rtans[i].ToString();
      newCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>(rtanName);
    }
  }

  // Update is called once per frame
  void Update()
  {
    time += Time.deltaTime;
    timeTxt.text = time.ToString("N2");

    if (time > 3.0f)
    {
      endTxt.SetActive(true);
      Time.timeScale = 0.0f;
    }
  }

  public void isMatched()
  {
    string firstCardImage = firstCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite.name;
    string secondCardImage = secondCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite.name;

    if(firstCardImage == secondCardImage)
    {
      //audio
      audioSource.PlayOneShot(match);

      firstCard.GetComponent<card>().destroyCard();
      secondCard.GetComponent<card>().destroyCard();

      int cardsLeft = GameObject.Find("cards").transform.childCount;
      if(cardsLeft == 2)
      {
        endTxt.SetActive(true);
        Time.timeScale = 0.0f;
      }
    }
    else
    {
      firstCard.GetComponent<card>().closeCard();
      secondCard.GetComponent<card>().closeCard();
    }

    firstCard = null;
    secondCard = null;
  }

  void GameEnd()
  {
    Time.timeScale = 0f;
    endTxt.SetActive(true);
  }

  public void retryGame()
  {
    SceneManager.LoadScene("MainScene");
  }
}



  • 오류 콘솔창
ArgumentException: Arial.ttf is no longer a valid built in font. Please use LegacyRuntime.ttf
UnityEngine.Advertisements.Placeholder.CreateButton (UnityEngine.GameObject canvasGameObject, System.Int32 x, System.Int32 y, System.Int32 width, System.Int32 height, UnityEngine.Vector2 anchorMin, UnityEngine.Vector2 anchorMax, System.String buttonText, UnityEngine.Events.UnityAction onButtonClick) (at ./Library/PackageCache/com.unity.ads@3.7.5/Runtime/Advertisement/Platform/Editor/Placeholder.cs:159)
UnityEngine.Advertisements.Placeholder.CreatePlaceholder (UnityEngine.GameObject canvasGameObject, UnityEngine.Texture2D texture, System.Int32 textureWidth, System.Int32 textureHeight) (at ./Library/PackageCache/com.unity.ads@3.7.5/Runtime/Advertisement/Platform/Editor/Placeholder.cs:122)
UnityEngine.Advertisements.Placeholder.Awake () (at ./Library/PackageCache/com.unity.ads@3.7.5/Runtime/Advertisement/Platform/Editor/Placeholder.cs:37)
UnityEngine.Advertisements.Advertisement:Initialize(String, Boolean)
adsManager:Awake() (at Assets/Scripts/adsManager.cs:28)




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