1. 서론
설명은 유니티 글에 자세히 적어두었습니다.
게시글 맨 아래입니다. 고객님
2. 본론
코드만 바로 보겠습니다.
public class Test2 : JHYSingletonNotUsedMono<Test2>
{
public Test2()
{
CreateNotUsedMono(this);
}
}
싱글턴 생성 방법: 자기 자신을 함수에 넣어주면 됩니다.
//모노없는 싱글턴 방식
interface JHYISingletonNotUsedMono<U> where U : class
{
void CreateNotUsedMono(U _class);
}
인터페이스 생성도 마찬가지로 T 자리를 class를 강제합니다
//모노 없는 방식
//생성자에 크리에이트낫유즈모노로 생성후에 ㄱㄱ
public class JHYSingletonNotUsedMono<U> : JHYISingletonNotUsedMono<U> where U : class
{
public static U InstanceNotMono = default;
public void CreateNotUsedMono(U _class)
{
if (InstanceNotMono == null)
{
InstanceNotMono = _class;
}
else if (InstanceNotMono.Equals(_class))
{
InstanceNotMono = null;
}
}
}
Mono 없는 방식은 mono만 뺀 인터페이스만 있는 방식이면 됩니다.
같이 T 자리를 class로 강제해주고 static으로 선언해주시면 되겠습니다.
public class Test : MonoBehaviour
{
private void Update()
{
if (Input.GetKeyDown(KeyCode.W))
{
Test2 w = Test2.InstanceNotMono;
}
}
}
윈폼이나 콘솔 프로그래에선 테스트 방식이 다르겠지만, 유니티에서는 이런 식으로 테스트하시면 됩니다.
물론 윈폼이나 콘솔 등등 C#베이스로 쓰실경우에 사용법은 같으나 update()는 없겠죠?
3. 결론
유니티 버전은 아래쪽 글에
[Unity3D]Singleton 인터페이스로 써보기
1. 서론 본 글은 Interface의 이해와 제너릭클래스(템플릿)에 대한 이해가 필요하므로 구체적인 설명이 들어갈 수도, 없을 수 도 있으니, 양해 부탁드립니다. 간단히 코드만 넣어 활용방법만 설명 하려 했으나 말..
s-sense.tistory.com
'Unity, C#' 카테고리의 다른 글
[Unity3D] [C#]Delegate 응용, 쉽게 사용 좀 해보자 (0) | 2020.06.01 |
---|---|
[Unity3D]Singleton 패턴 인터페이스로 써보기 (0) | 2020.02.08 |
[C#] 벡터의 내적 (0) | 2019.10.11 |
[C#] 시리얼 통신 데이터 주기(RS232) (0) | 2019.09.16 |
[Unity3D]JoyStick(D pad)캐릭터 이동 컨트롤러 제작(마무리) (0) | 2019.09.10 |