티스토리 뷰
1. 점수 표시하기 UI->Canvas
2. 점수 표시할 텍스트 넣기 UI->Text
Anchors는 Ctrl키, Shift키를 누르면 다양한 모드가 나온다.
3. 점수 스크립트 생성하기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Score : MonoBehaviour
{
public static int nScore = 0;
void Start()
{
nScore = 0; //새로 시작할때 점수를 0점으로 초기화
}
void Update()
{
GetComponent<Text>().text = nScore.ToString();
}
}
4. 장애물 통과하면 점수 올려주게 만들기위해 장애물 사이에 BoxCollider2D 추가하기
5. 장애물 사이에 있는 BoxCollider2D를 통과하기 위해 IsTrigger를 체크한다.
5. 장애물 통과시 스코어 올려주는 스크립트 만들기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjstacleScore : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D collision)
{
Score.nScore++; //장애물 통과시 점수를 1씩 올려준다.
}
}
6. 게임오버씬 만들기 (씬 추가하기)
7. 게임오버씬에 UI -> 패널 -> 이미지 넣기
8. 패널에 게임오버이미지 넣기
9. 패널에 스코어텍스트 넣기
10. 패널에 다시시작하기 버튼 넣기
10-1. SCORE TEXT에 스크립트 적용하기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class currentScore : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
GetComponent<Text>().text = "SCORE " + Score.nScore.ToString();
}
}
10-2. BESTSCORE TEXT 스크립트 적용하기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class bestScore : MonoBehaviour
{
void Start()
{
GetComponent<Text>().text = "BEST SCORE " + Score.nBestScore;
}
}
11. 버드가 장애물과 충돌하면 게임오버씬으로가 가기
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class JumpBird : MonoBehaviour
{
Rigidbody2D rigidbody2D;
public float jumpPower = 3.5f;
void Start()
{
rigidbody2D = GetComponent<Rigidbody2D>();
}
void Update()
{
if (Input.GetMouseButtonDown(0)) //터치할때마다
{
rigidbody2D.velocity = Vector2.up * jumpPower;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
SceneManager.LoadScene("GameOverScene");
}
}
12. Retry 버튼 누르면 다시 플레이하기
13. BEST SCORE 갱신하기.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class JumpBird : MonoBehaviour
{
Rigidbody2D rigidbody2D;
public float jumpPower = 3.5f;
void Start()
{
rigidbody2D = GetComponent<Rigidbody2D>();
}
void Update()
{
if (Input.GetMouseButtonDown(0)) //터치할때마다
{
rigidbody2D.velocity = Vector2.up * jumpPower;
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
if(Score.nScore > Score.nBestScore)
{
Score.nBestScore = Score.nScore; // 베스트 스코어 갱신
}
SceneManager.LoadScene("GameOverScene");
}
}
'프로그래밍 > 유니티' 카테고리의 다른 글
유니티 애드몹 광고 달기 (0) | 2022.05.18 |
---|---|
유니티 플래피버드 게임 만들기 #3 (0) | 2022.05.17 |
유니티 플래피버드 게임 만들기 #1 (0) | 2022.05.15 |
유니티 사운드 여러개 출력하는 방법 (0) | 2022.01.05 |
유니티에서 SQLite 안드로이드에서 실행해보기 (0) | 2021.12.29 |
댓글