일단 승리와 패배 패널을 만들어 주자.
우클릭 -> UI -> Panel을 누르면 나온다.
패털과 텍스트를 잘 넣어주자.
재시작 버튼도 만들어보자.
버튼 만들어주고 여기까지 알아서 만들어 보자.
그 후 게임매니저 스크립트에 들어가자.
using System.Collections;
using System.Collections.Generic;
using System.Net.Sockets;
using UnityEngine;
using UnityEngine.UI;
public class GameManager : MonoBehaviour
{
public GameObject WinPanel; //추가된거
public Text CoinText;
int score;
int coinCount;
void Start()
{
coinCount = FindObjectsOfType<coin>().Length; //추가 된거
}
// Update is called once per frame
void Update()
{
}
public void GotCoin()
{
score += 100;
CoinText.text = $"점수:" + score + "점";
}
}
추가된 코드를 보자. FindObjectsOfType <- 신에 존재하는 일치하는 타입이 있을 경우 반환. 이제 실행하면 Coin Counter가 8개가 되어있을 것이다.
코인이 없을 때 승리 패널 띄우기
일단 코드를 이렇게 만들자.
public void GotCoin()
{
score += 100;
CoinText.text = $"점수:" + score + "점";
coinCount--;
if(coinCount <=0)
{
WinPanel.SetActive(true);
}
}
저장 후 유니티에 가서 실행하고 코인을 먹어보면 코인이 줄어드는 걸 확인할 수 있다.
다 먹으면 이렇게 나온다
하지만 실행하면 재시작이 안된다. 이제 씬 재시작을 만들어 보도록 하자.
씬 재시작
코드를 만들어 주도록 하자
using System.Collections;
using System.Collections.Generic;
using System.Net.Sockets;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement; //2차 추가
public class GameManager : MonoBehaviour
{
public GameObject WinPanel; //추가된거
public Text CoinText;
int score;
int coinCount;
void Start()
{
coinCount = FindObjectsOfType<coin>().Length; //추가 된거
}
public void GotCoin()
{
score += 100;
CoinText.text = $"점수:" + score + "점";
coinCount--;
if(coinCount <=0)
{
WinPanel.SetActive(true);
}
}
public void Restart() //2차 추가
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
}
}
2차 추가된 곳을 보면 bulidindex는 다시 인덱스 해주는것이다.
여기가 빌드다. 신이 없으면 0이 된다. 체크가 되어 있어야 신이 활성화 되어 있는 것이다. 없으면 Add Open Scenes를 해서 추가해 주자.
그 후 재시작 버튼에 가서 내리다 보면 On Click이 있다. + 를 눌러 추가해 주고, 게임매니저를 넣어주자. 그 후, NoFuntion에 GameManager에서 Restart를 넣어주자.
그 후 gamemanager에 winpanel을 넣어주자
넣고 코인을 다 먹으면 이렇게 뜬다.
만약 이상해지면 상단에 Window -> Rendering -> Lighting -> Scene 아래에 있는 Generate Lighting을 눌러주자
조이스틱 에셋 받기
https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631
여기에 들어가서 에셋을 추가하고 유니티를 열자. 만약 안 떴다면 Window -> PacKage Manager를 눌러서 열자. 마이 에셋을 누르면 아까 다운로드한 에셋이 있다.
그 후 Joystick Pack을 다운로드하고 import까지 하자
아마 다 체크되어 있을 것이다. 나는 다운을 받았기 때문에 체크가 안된 것이다. 후에 리로드가 뜰 수 있는데 리로드를 해주고 파일에 들어가면 Joystick Pack이 있다.
후에 Prefabs에 Fixed JoyStick이 있는데 Canvas에 끌어오자.
실행화면은 이렇게 되어있다. 모바일에서도 움직일 수 있게 만들어 주도록 하자.
player 스크립트로 가자.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class palyer : MonoBehaviour
{
public GameManager gameManager;
public FixedJoystick fixedJoystick;
public Rigidbody rbody; //추가한거
public Vector3 moveDir;
public float moveSpeed;
void Update()
{
float x = Input.GetAxisRaw("Horizontal") + fixedJoystick.Horizontal; //추가된거
float z = Input.GetAxisRaw("Vertical") + fixedJoystick.Horizontal; //추가된거
moveDir = new Vector3(x, 0 , z); //추가된거
moveDir.Normalize();
}
private void FixedUpdate()
{
rbody.MovePosition(rbody.position + moveDir * moveSpeed);
}
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.GetComponent<coin>() != null)
{
gameManager.GotCoin();
Destroy(collision.gameObject);
}
}
}
추가된 거만 잘 보면 된다. 추가를 해줬으면 저장 후 유니티로 가자
이렇게 넣어주고 실행하면 조이스틱으로도 잘 움직일 수 있다.
'유니티' 카테고리의 다른 글
유니티 총쏘기 게임 만들기 - 2 총 발사하기 (0) | 2025.03.28 |
---|---|
유니티 총쏘기 게임 만들기 - 1 캐릭터에 총 달기 (0) | 2025.03.28 |
유니티 코인 먹기 게임 만들기 - 6 점수증가 (0) | 2025.03.27 |
유니티 코인 먹기 게임 만들기 - 5 코인에 닿으면 코인 사라지게 하기 (0) | 2025.03.27 |
유니티 코인 먹기 게임 만들기 - 4 코인 회전하기 (0) | 2025.03.27 |