본문 바로가기
개발자가 되어보자..공부공부/개발 일지

C# 유니티 공부 26 - 디펜스 게임2 (Singleton Pattern 싱글톤 패턴, onMouseEnter/Exit/Down, Screen width/height)

by 묭묭이와소담이 2022. 12. 27.
반응형

* crtl + shift + F 

씬뷰와 게임뷰의 오브젝트를 같은 Transform으로 만듦.

(카메라 볼 때 유용하게 사용.)

 

* 빌드매니저 스크립트 생성 (게임매니저 오브젝트에 삽입)

★ ★ 싱글톤 패턴(Singleton Pattern)

 - 애플리케이션이 시작 될 때, 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어서 사용하는 패턴을 말한다 

 

즉, 싱글톤 패턴은 한 개의 인스턴스만 생성하여 사용하는 패턴이다.

(인스턴스가 필요할 때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하는 것.)

 

기본적으로 객체를 생성할 때마다 메모리 영역을 할당받아야 하는데, 

싱글톤 패턴을 적용하여 한 번의 메모리 할당으로 메모리 낭비를 방지 할 수 있다

 

싱글톤으로 구현한 인스턴스는 전역변수로, 다른 클래스의 인스턴스들이 데이터를 공유할 수 있다.

Awake에서 Static 변수로 선언했던 instance를 this로 지정해주면 전역변수로 사용 가능.

 

 


 

* Node(길) 클릭 시에 터렛 생성하는 로직 구현.

- Node 스크립트 생성.

- onMouseEnter/Exit/Down 3가지 함수 사용.

- Enter,Exit 시에 색깔이 변화하도록 함.

- Down 시에 Instatiate로 터렛 생성. (buildmanaer 스크립트의 싱글톤 패턴으로 쉽게 접근 가능.)

 

 


 

* 카메라 조정

- W,A,S,D 키로 카메라가 상하좌우로 이동하도록 함. 

(여기서는 Screen.heigth / Screen.width 사용.)

Screen.heigth / Screen.width는 물리적 스크린(좌표계) 자체를 의미.

Camera.main.Width 는 카메라별로 가지는 스크린(좌표계)의 크기.

 

- 마우스 커서의 위치가 상하좌우 일정 범위에 도달하면, 카메라도 상하좌우로 이동하도록 함.

- 마우스 휠로 카메라를 확대, 축소 할 수 있도록 함. 

y축을 조정하며, 최소/최대값을 설정.

Mathf.Clamp(입력값, 최소값, 최대값) - 입력값을 최소~최대 사이에서만 값을 반환함.

- 위 로직은 ESC키로 On/Off 할 수 있음. (bool값 변수 사용)

 

 

 


 

 

 

 

반응형

댓글