728x90

전체 글 192

[Unity] 점수감소되는 빨간빗방울 추가하기

원래 빗방울은 점수가 +만 됐었는데, 이번에는 점수가 -5점 감소되는 빨간빗방울을 만들어보자. 빨간빗방울 추가하기Rain Script 우선 RainScript 빗방울 생성 타입을 하나 추가한다.//기존 Random.Range(1,4)에서 (1,5)로 변경int type = Random.Range(1, 5);📌 Random.Range(1,4)에서 (1,5)로 변경하여 1-3까지 있던 빗방울 타입을 1-4로 늘려준다.if(type==1){ size = 0.8f; score = 1; renderer.color = new Color(100 / 255f, 100 / 255f, 1f, 1f);}else if (type == 2){ size = 1.0f; score = 2; rend..

[Unity] EndPanel켜고 게임 다시시작 SetActive(),LoadScene()

EndPanel 띄우기이제 시간이 0인, 게임이 종료된 상태에서 EndPanel을 켜보자마찬가지로 EndPanel오브젝트를 가져오기 위해 GameManager에 변수를 만들어준다.public GameObject endPanel;그리고 유니티에서 GameManager에 endPanel을 드래그 앤 드롭으로 넣어준다. 지금은 endPanel이 보이지 않도록 꺼져있는데, 이를 게임이 종료되었을 때 나올 수 있도록 조절을 해야한다. endPanel이 켜지는 시점은 time이 0이 되는 시점이다. 따라서 totalTime이 0이 되었을 때 endPanel이 보이도록 해보자.void Update(){ if (totalTime > 0) { totalTime -= Time.deltaTime; ..

[Unity] 타이머 Time.timeScale = 0f;

타이머값 계산하기GameManager 스크립트 전체시간 변수 선언 float totalTime=30.0f; 시간이 줄어드는 것을 표현하기 위해 totalTime값을 지속적으로 일정한 값으로 빼준다.모든 기기 들이 같은 값을 가질 수 있도록 deltaTime을 사용한다. deltaTime은 시간을 프레임 대비로 맞춰준 값이다.void Update(){ //deltaTime은 시간을 프레임대비로 맞춰준 값 totalTime -= Time.deltaTime;}타이머UI에 값 넣기우선 타이머UI를 불러오기 위해 아래와 같이 text값을 선언한다.//타이머 값을 넣어주기 위한 text컴포넌트 생성public Text timeTxt; 그리고 이전에 점수를 넣어줬던 것과 같이 text값에 totalTime..

[Unity] 게임종료UI

게임 종료 UI를 생성해보자!Canvas>UI>ImageImage의 width: 400, height: 250Color: R232 G52 B78Canvas에 위와 같이 표시됨 텍스트 추가Text추가를 위해 Image우클릭>UI> Legacy> Text이 text사이즈는 Image의 사이즈와 항상 똑같게 유지 해줄 것이다.그러기 위해서, Rect Transform에 있는 네모난 상자를 누르고,option+Shift(window는 Alt+Shift)를 누른상태로 오른쪽 하단의 네모를 눌러준다.이렇게 하면 텍스트 사이즈가 이미지 사이즈에 맞춰지게 된다.아래 사진과 같이 각각의 값을 맞게 변경한다. 아래와 같이 UI가 만들어진다.  Image오브젝트 이름을 EndPanel으로 변경한다.게임오버가 됐을 때만 이 ..

[Unity] 올라가는 점수값 UI표시 - Text타입

Canvas UI에 더해지는 점수 표시하기 콘솔창을 통해 totalScore이 잘 올라가는 것을 확인했다면 이제 Canvas밑에있는 Score텍스트에 점수를 넣어보자.Text컴포넌트에 Text값을 바꿔줘야 하므로 Text컴포넌트를 가져와야한다.문제는 GameManager에서 Text컴포넌트가 필요한데, 지금 GameManager가 붙어있는 곳과 우리가 가지고 올 Text컴포넌트가 붙어있는 곳이 같지 않다는 것이다. 이럴때는 Text컴포넌트, Text라고 하는 타입을 가져와서 활용할 수 있다.  우선 UI사용을 위해 UI와 관련된 패키지를 가져올수 있는 아래코드를 GameManager Script에 추가한다. using UnityEngine.UI;그 후 프리팹 해주었던 것처럼 Text도 아래와 같이 변수를..

[Unity] 충돌체크로 점수 증가 AddScore()

매개변수란, 이 함수를 다른 곳에서 호출했을 때 데이터를 넘겨주기 위한 공간.public void AddScore(int score){}위 코드의 score이 매개변수이다. 점수를 증가시키기 위해서 캐릭터와 빗물이 충돌했을 때 점수를 넘겨줘야한다.이 score 변수를 통해서 넘어온 데이터를 totalScore에 더해줄 것이다. Rain스크립트에서 이전에 그라운드와 충돌체크를 해준 것처럼,플레이어와 빗방울의 충돌이 이루어지면 점수를 추가하는 로직을 구현해보자. 점수 증가 로직GameManager 스크립트void MakeRain(){ Instantiate(rain);}//캐릭터와 빗물이 맞았을 때 호출public void AddScore(int score){ totalScore += score;}..

[Unity] 싱글톤(Singleton)

다른 스크립트에서 불러올 수 있게끔 싱글톤을 만들어준다. 싱글톤이란, 나 하나밖에 없다라는 뜻 한마디로 이 프로젝트의 GameManager라고 하는 객체는 나 하나밖에 없다 그리고 여러 스크립트에서 접근이 가능하게 만들어주는 기능 싱글톤 변수 선언 - 싱글톤을 위해서 public static이라는 키워드 사용- 클래스 네임과 똑같이 써줌- 변수 이름은 Instancepublic static GameManager Instance; 그리고 이 instance에는 나 자신을 넣어줘야함! private void Awake(){ Instance = this;}

728x90