a17d2cad2f1b782a99595a48fa9f3433f728bd6f6b8abd3f6f5aaffad6


์—ฌ๊ธฐ ๋ณด์ด๋Š”๊ฑฐ์ฒ˜๋Ÿผ ๋‘๋”์ง€๊ฐ€ ์œ„๋กœ ์˜ฌ๋ผ์™”์„ ๋•Œ ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋จธ๋ฆฌ ์œ„์— +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์œผ๋กœ ํ•˜๋‹ˆ๊นŒ ์œ ๋‹ˆํ‹ฐ์—์„œ ๋ณ€์ˆ˜ ์ง€์ •์„ ๋ชปํ•ด์ฃผ๋”๋ผ ์ด๊ฑฐ ์™œ ์ด๋Ÿฌ๋Š”๊ฑฐ์ž„