
์ฌ๊ธฐ ๋ณด์ด๋๊ฑฐ์ฒ๋ผ ๋๋์ง๊ฐ ์๋ก ์ฌ๋ผ์์ ๋ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ๋จธ๋ฆฌ ์์ +1 ์ด๋ผ๋ ํ
์คํธ๋ฅผ ๋์ฐ๊ณ ์ถ์ด์ ์ ํ๋ธ ์ฐธ๊ณ ํด๊ฐ๋ฉด์ ๋ง๋ค์๋๋ฐ
์ผ๋จ +1 ๋จ๊ณ ์ ์ ์ฌ๋ผ์ง๊ฒ ํ๋ ๊ฑฐ๊น์ง ํ๋์ ํ๋ฆฌํฉ์ผ๋ก ๋ฌถ์ ๊ฒ ๊น์ง๋ ์ข์๋๋ฐ ๋ฌธ์ ๋
using System.Collections;
using UnityEngine;
public class ScoreResult : MonoBehaviour
{
ย ย public static float clickTime; ย // ๋๋ฅด๊ณ ์๋ ์๊ฐ
ย ย public static int moleScore; ย ย // ์ค์ ๋์ฅ ์ ์
ย ย [SerializeField]
ย ย private GameObject hudDamageText; ย ย // ์ฌ๊ธฐ์ TextMeshPro ํ๋ฆฌํน์ ๋ฃ์๊ฑฐ์
ย ย static public void plusScore(bool on) ย // boolํํ์ on์ ๋ฐ์ผ๋ฉด
ย ย {
ย ย ย ย if (on == true){ ย ย // ๋ง์ฝ ๋๋ฅด๊ณ ์๋ค๋ฉด
ย ย ย ย ย ย clickTime += Time.deltaTime; ย ย // ํด๋ฆญํ์์ ์๊ฐ์ด ์ญ์ฑ ์ฆ๊ฐ
ย ย ย ย ย ย if (clickTime >= 0.6){ ย // ๋ง์ฝ 0.6์ด๋ฅผ ๋๊ฒผ๋ค๋ฉด
ย ย ย ย ย ย ย ย moleScore++; ย ย ย ย // ์ค์ฝ์ด 1์ ์ถ๊ฐ
ย ย ย ย ย ย ย ย Instantiate(hudDamageText);
ย ย ย ย ย ย ย ย clickTime = 0; ย ย ย // ๋ค์ 0.6์ด ๋ค์ ์ค์ฝ์ด ๋ฐ์์ผ ํ๋๊น
ย ย ย ย ย ย }
ย ย ย ย } else {
ย ย ย ย ย ย clickTime = 0; ย ย ย ย ย // ๋คํ๋ฉด ๋ค์ 0์ผ๋ก
ย ย ย ย }
ย ย }
}
SerializeField ํ๊ณ ํ๋ฆฌํฉ ๋ฃ์ ๊ณต๊ฐ ๋ฃ๊ณ
๊ฐ์ด๋ฐ์ Instantiate๋ก ๋ณต์ ํด์ +1์ ๋์ธ ์๊ฐ์ด์๋๋ฐ
Assets\DDgScript\ScoreResult.cs(19,29): error CS0120: An object reference is required for the non-static field, method, or property 'ScoreResult.hudDamageText'
static ์๋๋ผ๊ณ ์ค๋ฅ๊ฐ ๋จ๋๊ฑฐ์ ๋ญ๋ ์ง์ง ๊ฐ์ ํด๋์ค ์์ ๋ค๋ฅธ ๋ฉ์๋๋ฉด ์๋ก ํธ์ถํ ์ ์๋ ๊ฑฐ ์๋์ผ?
๊ทธ๋์ ํ๋ฆฌํน ๋ฃ๋ ์ ๋ณ์๋ฅผ static์ผ๋ก ํ๋๊น ์ ๋ํฐ์์ ๋ณ์ ์ง์ ์ ๋ชปํด์ฃผ๋๋ผ ์ด๊ฑฐ ์ ์ด๋ฌ๋๊ฑฐ์
static ๊ฐ๋ ๋ค์ ๊ณต๋ถํ๊ณ ์ค์
์ธ์คํด์ค ๋ฉค๋ฒ๋ ์คํํฑ๋ฉค๋ฒ์ ์ ๊ทผ ์๋จ