나 개발자 진짜 되냐?

모바일 게임 만들어보기 2 - 5 풍선을 지켜라 게임 본문

유니티를 공부해봐요!

모바일 게임 만들어보기 2 - 5 풍선을 지켜라 게임

Snow Rabbit 2025. 2. 10. 22:07
반응형

 

아니 이게 역시 이래서 미루면 안된다.

 

아니지 미룬건 아니고 시간이 부족해서긴 했는데..

 

예전에는 한번도 접해보지 않았던 공부여서

하나하나 다 적어서 어떻게 하는지 과정을 적었는데...

 

지금은 주요 함수만 정리하니깐

이게 뭐랄까....

기승전결이 굉장히 못생겨졌다.

ㅋㅋㅋㅋㅋㅋ

 

예전에는 막 

한줄한줄 색도넣고 크기도 바꾸고 어쩌고 저쩌고 그랬는데..

 

지금은..

무슨 함수를 써야하는지에만 강조 표시하는게 전부이다

 

이러면 매우 곤란한데 

유종의 미가 박살났긴한데

이상하게 그때 하나하나 적어냈던기억이

너무 고통스러웠는지

다시 시작할 엄두가 안난다 ㅋㅋㅋㅋ

 

하지만 과거의 나와 지금은

또 한발자국 나간 사람이기에

그냥 지금 방식대로 정리하는게 더 맞는거같긴하다.

 

ㅎㅎㅋ

1

마우스의 포인트에 따라 움직일 수 있게 하기

 

이 부분은 사실

거쳐가야하는 부분이 있다.

 

카메라가 비추는 게임과

내 마우스의 게임을 일단 통일시키는게 중요하다

 

그래서

먼저 써야하는 코드가

 

Camera.main.ScreenToWorldPoint(Input.mousePosition);

메인카메라의 위치가

스크린에 맞게 조절한다

 

스크린상의 마우스좌표

카메라가 찍고있는 월드좌표로 바꿔준다.

 

이 코드를 한 변수에 담아주고

 

Vector2 mousePos =

 

그 변수값을

위치값에 넣어주면 된다.

 

위치는?

transform.position 이고

transform.position = mousePos

 

2

복습하기 위해서

색이나 사이즈 랜덤변동은?

 

Random.Range( 최솟값, 최댓값 )

 

위치의 경우

 

아까 말했듯

transform.position 인디

 

사이즈는

그냥 scale이 아니라

transform.localScale 

앞에 로컬을 붙여야한다.

 

3

자, 반복적으로 수행하기 위해서는

우리는 오브젝트를 동적으로 생성해야한다.

그러지않으면 낭비기 때문에..!

 

그래서 우리는 그과정을 프리팹이라고 하는데

프리팹으로 만들어주는 과정이 기억나는가?

 

일단 프리팹 파일 하나 파서

넣어주고! 오브젝트 지우고

코드 작성은? 게임매니저에서 해주는게 좋다.

 

프리팹을 만들어주는 함수

Instantiate( 게임오브젝트 변수 이름 );

 

이 함수 덕분에 프리팹이 생성된다.

 

다음에 이 프리팹을 

 (함수를) 반복적으로 실행시켜주는 코드가 있다.

InvokeRepeating( string, int, int )

"함수이름" , 몇초뒤에 시작할건지 ( 0면 바로 시작 ) , 주기 ( 1이면 1초마다 )

 

프리팹 말고 사실 함수가 주로 되는건데

우리는 프리팹을 반복적으로 할거라 그냥 표현한거다..ㅎㅅㅎ

 

여튼!

 

 

4

시간을 움직일땐

Time.deltaTime

을 더하고 빼서

 

스톱워치처럼 더하거나

타임어택처럼 뺄 수 있다.

 

time += Time.deltaTime

time -= Time.deltaTime

 

이 값을 UI에 표시하려면??

 

 

 Text 변수 선언 하나 해주고,

public Text timeTxt

 

tiemTxt.text = time.ToString();

 

time는 float이고

text는 string이여서

time을 string으로 바꿔주어야한다.

괄호 안에는 소수점 몇자리까지 표시할지 적는다

"M2" 소수점 두번째까지 라고 해석한다.

따옴표는 필 수 ! " "

 

 

5

싱글톤을 예전에는 이렇게 썼구나.

 

public static GameManager Instance;

private void Awake()
{
	if(Instance == null)
    	{
    		Instance = this;
    	}
}

 

 

 

 

반응형