
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
질문이 두 가지가 있습니다.
SceneManager.LoadScene("MainScene");
함수를 호출하여 MainScene을 다시 로드 하였습니다.
이렇게 되면 GameManager.cs 스크립트의 start()함수가 호출되는 것 같은데,
빗방울이 나오지 않는 이유는 무엇 때문인가요?(start()함수 내 InvokeRepeating("makeRain", 0, 0.5f); 함수가 있기 때문에 빗방울이 나와야 할 것 같은데..)
2 . C# 스크립트를 최초 생성하면 자동으로 start()함수와 update()함수가 생성됩니다.
start()함수는 C#과 연계된 gameObject가 최초 생성 될 때 호출되는 것으로는 이해하는데,
update()함수는 언제 호출이 되나요?
--> rtan.cs 스크립트 Update()함수에는 클릭하였을 경우, x포지션이 2.8보다 클 경우/작을 경우에 대한 로직이 있는데,
x포지션이 2.8보다 클 지 작을 지 매 순간마다 update함수가 실행되어서 체크를 하는 것인지?
--> GameManager.cs 스크립트의 update()함수에는 제한시간을 감소시키는 로직이 있는데, 이것도 매 순간순간 update()함수가 실행되는 것인지?
update()함수는 누군가가 호출하는 것이 아니라 반복적으로 계속 호출되는 것인지?

작성한 코드 및 에러 메세지
GameManager.cs 스크립트의 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine.SceneManagement;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public GameObject rain;
public GameObject panel;
public static GameManager I;
public Text scoreText;
public Text timeText;
float limit = 60f;
int totalScore;
void Awake()
{
I = this;
}
// Start is called before the first frame update
void Start()
{
initGame();
InvokeRepeating("makeRain", 0, 0.5f);
}
// Update is called once per frame
void Update()
{
limit -= Time.deltaTime;
if (limit < 0)
{
Time.timeScale = 0.0f;
panel.SetActive(true);
limit = 0.0f;
}
timeText.text = limit.ToString("N2");
}
void makeRain()
{
Instantiate(rain);
}
public void addScore(int score)
{
totalScore += score;
//Debug.Log("add score");
scoreText.text = totalScore.ToString();
}
public void retry()
{
SceneManager.LoadScene("MainScene");
}
void initGame()
{
Time.timeScale = 1.0f;
totalScore = 0;
limit = 60f;
}
}
