커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
스스로 해결
2-7 invoke 적용 후 시간이 안맞아요.
undefined주차
북마크
김*기
댓글
3
추천
0
조회수
19
조회수
19
스스로 해결

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

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



public void gameOver ()부분에서 애니메이션이 작동되는 시간을 위해 Invoke("timeStop", 0.5f); 적용 후 시간이 0.5초 더 나오네요.

강의는 0.5초 딜레이가 없어서 문의드립니다.





작성한 코드 및 에러 메세지

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI; //유니티 UI엔진을 쓸 것이다.

using UnityEngine.SceneManagement;


public class gameManager : MonoBehaviour

{

  public GameObject square;

  public GameObject endPanel;

  public Text timeTxt;

  public Text thisScoreTxt;

  public Text maxScoreTxt;

  public Animator anim;

  float alive = 0.0f; 

  bool isRunning = true;

  public static gameManager I;

   

   



  void Awake()

  {

    I = this;

  }

  // Start is called before the first frame update

  void Start()

  {

    Time.timeScale = 1f;

    InvokeRepeating("makeSquare", 0.0f, 0.5f); //계속해서 makeSquare 함수 발생

  }


  // Update is called once per frame

  void Update()

  {

    alive += Time.deltaTime;

    timeTxt.text = alive.ToString("N2");

  }


  void makeSquare()

  {

    Instantiate(square);

  }


  public void gameOver()

  {

    isRunning = false;

    anim.SetBool("isDie", true);

    Invoke("timeStop", 0.5f);

    endPanel.SetActive(true);

    thisScoreTxt.text = alive.ToString("N2");

    if (PlayerPrefs.HasKey("bestscore") == false)

    {

      PlayerPrefs.SetFloat("bestscore", alive);

    }

    else

    {

      if (alive > PlayerPrefs.GetFloat("bestscore"))

      {

        PlayerPrefs.SetFloat("bestscore", alive);

      }

    }

    float maxScore = PlayerPrefs.GetFloat("bestscore");

    maxScoreTxt.text = maxScore.ToString("N2");

  }


  public void retry()

  {

    SceneManager.LoadScene("MainScene");

  }


  void timeStop()

  {

    Time.timeScale = 0.0f;

  }

}


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