본문 바로가기
유니티/유니티 문법?

싱글톤 (점수 관리 같은거 할 때)

by xortl98 2021. 4. 19.
728x90

static 변수를 선언하고 instance에 this를 해줌으로써 다른 함수에서도 편히 쓸수 있도록 해줌.

이렇게 하면 score를 public ScoreManager scoreManager해서 끌어올 필요가 없다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScoreManager : MonoBehaviour
{
    public static ScoreManager instance;
    
    private int score = 0;

	//★핵심★
    void Awake() // 
    {
        instance = this;
    }

    public int GetScore()
    {
        return score;
    }

    public void AddScore(int newScore)
    {
        score = score + newScore;
    }
}

점수를 더해준다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScoreAdder : MonoBehaviour
{
	// public ScoreManager scoreManager
	//앞선 ScoreMnager에 instance라는 값을 해줘서 선언안해도 됨.
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            ScoreManager.instance.AddScore(5);

            Debug.Log(ScoreManager.instance.GetScore());
        }
    }
}

 

점수를 빼준다. 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ScoreSubtrator : MonoBehaviour
{
    //public ScoreManager scoreManager;
	//앞선 ScoreMnager에 instance라는 값을 해줘서 선언안해도 됨. 
    private void Update()
    {
        if (Input.GetMouseButtonDown(1))
        {
            ScoreManager.instance.AddScore(-2);

            Debug.Log(ScoreManager.instance.GetScore());
        }
    }
}

'유니티 > 유니티 문법?' 카테고리의 다른 글

코루틴 (대기시간 주는 것)  (0) 2021.04.19
리스트 (실시간으로 입력 받음)  (0) 2021.04.18
인스턴스화  (0) 2021.04.12
유니티 물체 회전시키는법 (Quaternion)  (0) 2021.04.12
유니티 쿼터니언 Lerp  (0) 2021.04.12