Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 소스
- 프로그래밍 언어
- Source
- 프로그램
- 클리커
- 유니티
- Silly
- 블루투스
- jar
- 프로그래밍 #코딩 #과외 #네카라쿠배 #따라하기 #코딩초보 #앱 #안드로이드
- 인디게임
- 시리얼 통신
- 클리커게임
- 제작
- 프로그랭소스
- 초보
- AR
- 핸드폰과 PC 블루투스
- unity
- clicker
- 강좌
- Scene
- 안드로이드
- 과외
- 뷰포리아
- 질문
- 강의
- Game
- 2016
- Manager
Archives
- Today
- Total
실리의 프로그램 사이트
Unity Singleton을 제네릭으로 만들어놓고 써봅시다. 본문
안녕하세요.
오늘은 유니티에서 자주 사용하는 대표적인 디자인 패턴인 Singleton을 쉽게 사용하기 위하여 제네릭으로 만들 겁니다.
제네릭이란 C++ 을 사용하신 분은 다들 아시는 템플릿과 비슷한 개념인데요.
유니티를 사용하는 상황에서는 C#을 쓰기 때문에 C++과는 차이점이 존재합니다.
아래는 Msdn에서 정의되어 있는 C#의 제네릭과 C++의 템플릿과의 주요 차이점입니다.
|
이것 외에도 구현 부분에서 가장 큰 차이점은 C#의 제네릭 형식 대체는 런타임에 수행되므로 인스턴스화된 개체에서
제네릭 형식 정보가 유지된다는 점입니다.
위에 부분을 숙지 하시고 제네릭을 만들어 봅시다.
using UnityEngine;
public class Singleton<T> : MonoBehaviour where T : MonoBehaviour
{
private static T instance;
public static T Instance
{
get
{
if(instance == null)
{
GameObject obj;
obj = GameObject.Find(typeof(T).Name);
if(obj == null)
{
obj = new GameObject(typeof(T).Name);
instance = obj.AddComponent<T>();
}
else
{
instance = obj.GetComponent<T>();
}
}
return instance;
}
}
public void Awake()
{
DontDestroyOnLoad(gameObject);
}
}
자 위와 같이 비교적 쉽게 만들 수 있는데요. Manager를 만들 시 우리는 보통 Singleton 형태로 만드는데요. 아래와 같이 하
시면 끝입니다.
using UnityEngine; public class Manager: Singleton<Manager> { }
|
다들 즐거운 코딩하시고 싱글톤은 앞으로 제네릭으로 만들어 놓고 편하게 쓰시길 바랍니다.
감사합니다.
'Unity 강좌' 카테고리의 다른 글
유니티로 핸드폰과 컴퓨터간의 블루투스 통신을 해보자(완료) (37) | 2017.03.09 |
---|---|
유니티로 핸드폰과 컴퓨터간의 블루투스 통신을 해보자(3차 작업) (4) | 2017.03.08 |
뷰포리아를 유니티에 적용해보자(완료) (10) | 2017.02.15 |
뷰포리아를 유니티에 적용해보자(2차 작업) (0) | 2017.02.14 |
유니티로 핸드폰과 컴퓨터간의 블루투스 통신을 해보자(2차 작업) (2) | 2017.02.13 |
Comments