유니티

[유니티 2D] 미로 - 생명

labj 2024. 3. 10. 03:24

Hierarcy창에서 UI > Text 선택하고, 게임오브젝트의 이름을 HP로 변경한다.

HP 게임오브젝트의 Text>Text를 원하는 값으로 수정합니다.  

 

Project > Assets 폴더에 Ghost.prefab 게임오브젝트의 Tag값을 Ghost로 줍니다.

 

 

Project > Assets 폴더에서 Hp.cs라는 이름의 C#스크립트를 만듭니다.

Tag값으로 Ghost란 이름을 가진 게임오브젝트와 만나면 hp1깍입니다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class Hp : MonoBehaviour
{
    public GameObject HpText;
    public int hp = 100;

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.gameObject.tag == "Ghost")
        {
            hp = hp - 1;
        }
    }

    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        HpText.GetComponent<Text>().text = hp.ToString();
    }
}

 

 

Hp.csPlayer 게임오브젝트에 연결시켜 줍니다.

HP게임오브젝트를 Player 게임오브젝트의 Hp(Script) 컴포넌트의 HpText(None(GameObject))에 넣어줍니다.

 

 

ClearScene 화면을 만듭니다. Hp 0보다 작다라면 ClearScene 화면으로 이동합니다.

 

* Hp.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class Hp : MonoBehaviour
{
    public GameObject HpText;
    public int hp = 100;

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.gameObject.tag == "Ghost")
        {
            hp = hp - 1;
            if(hp < 0)
            {
                SceneManager.LoadScene("ClearScene");
            }
        }
    }

    void Start()
    {
        
    }

    void Update()
    {
        HpText.GetComponent<Text>().text = hp.ToString();
    }
}