ํ์ฌ ์ด๋ ๊ฒ ๊ฐ์ด๋์ฐฝ์ ๋๋ฅด๋ฉด ๋ฉ์ถ๊ฒ ํ๊ณ ์ถ์๋ฐ ์๋ฉ์ถฅ๋๋ค ์๊ฐ๋ ์๋ฉ์ถ๊ณ ๋ชฌ์คํฐ๋ ์๋ฉ์ถ๋ค์
using UnityEngine;
public class GameGuide : MonoBehaviour
{
ย ย public GameObject guidePanel;
ย ย public GameObject guideButton; // ๊ฐ์ด๋ ๋ฒํผ ์ฐธ์กฐ
ย ย public string panelOpenSoundName = "PanelOpen"; // ํจ๋ ์ด๋ฆด ๋ ์ฌ์ด๋ ์ด๋ฆ
ย ย void Start()
ย ย {
ย ย ย ย guidePanel.SetActive(false); // ์์ ์ ๊ฐ์ด๋ ํจ๋ ์จ๊น
ย ย ย ย guideButton.SetActive(true); // ์์ ์ ๊ฐ์ด๋ ๋ฒํผ ๋ณด์
ย ย }
ย ย public void ToggleGuide()
ย ย {
ย ย ย ย bool isPanelActive = guidePanel.activeSelf;
ย ย ย ย guidePanel.SetActive(!isPanelActive); // ํจ๋ ํ์ฑํ ์ํ ํ ๊ธ
ย ย ย ย // ํจ๋ ์ํ์ ๋ฐ๋ผ ๊ฒ์ ์ผ์ ์ ์ง ๋๋ ์ฌ๊ฐ
ย ย ย ย if (!isPanelActive)
ย ย ย ย {
ย ย ย ย ย ย // ํจ๋์ด ์ด๋ฆด ๋
ย ย ย ย ย ย Time.timeScale = 0f; // ๊ฒ์ ์ผ์ ์ ์ง
ย ย ย ย ย ย AudioManager.Instance.PlaySFX(panelOpenSoundName); // ์ฌ์ด๋ ์ฌ์
ย ย ย ย }
ย ย ย ย else
ย ย ย ย {
ย ย ย ย ย ย // ํจ๋์ด ๋ซํ ๋
ย ย ย ย ย ย Time.timeScale = 1.0f; // ๊ฒ์ ์ฌ๊ฐ
ย ย ย ย }
ย ย }
}
์ฝ๋๋ ์ด๊ฑฐ์
๋๋ค. Time.timeScaleํด๋ ์๋ฉ์ถ๋ค์ ๋ฒํผ์ถ๊ฐํ์ต๋๋ค.
๋ญ๊ฐ๋ฌธ์ ์ผ๊น์ใ
๋ชฌ์คํฐ ์์น๋ฃฐ ์ง์ ์ ์ดํ๋๊ฒฝ์ฐ deltatime์ ์๊ณฑํ๋ฏ
๊ฐ์ฌํฉ๋๋ค
0. timeScale์ด 0์ด์ด๋ ์ ๋ฐ์ดํธ๋ฌธ์ ๋์๊ฐ 1. timeScale์ 0์ผ๋ก ์ค์ ํ๊ณ ๋์ ์ ๋ฐ์ดํธ๋ฌธ์ด ๋์๊ฐ๊ธฐ ๋๋ฌธ์ ์ผ์์ ์ง๊ฐ ์ ๋๋ ๊ฑฐ๋ผ๊ณ ์๊ฐํ์ ํ๋ฅ ์ด ์์ 2. ์ ๋ฐ์ดํธ๋ฌธ์ ๋งจ ์์ timeScale์ด 0์ผ ๋ ๋ฆฌํด๋๋๋ก ํ๋ฉด ํด๊ฒฐ
๊ณต์๋ฌธ์์ ๊ฒ์ํด๋ณด๋ ์ ๋ฐ์ดํธ์ ์ฝ๋ฅดํด์ ์๋๋ค๊ณ ๋ณด์ด๋ค์ ๊ฐ์ฌํฉ๋๋ค.
์ฝ๋ฃจํด๋ ์์์ WaitForSeconds๋ฑ์ผ๋ก ๋๊ธฐ์ํค๋ฉด ํ์์ค์ผ์ผ ์ํฅ ๋ฐ์๊ฑฐ์. ๊ทธ๋๋ WaitForSecondsRealTime์ ์ฌ์ฉํ๋ฉด ๋จ.