일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- rider 설치
- 알고리즘
- cmd키 변경
- unity 받기
- unity 구버전
- 유니티
- Rider
- Mac
- C#
- 엑셀 내보내기
- monocraft
- 다른 시트값
- ilcode
- 다각형 중점
- unity
- 한달리뷰
- 라이더
- 진수 변환기
- navmesh
- ilviewer
- 스프레드 시트
- 테크스트림
- navmeshagent
- 스프레드시트 사용법
- git
- 백준
- 스프레드시트
- 엑셀 가져오기
- Mac 상단바 아이콘 이동
- 유니티 해상도 고정
- Today
- Total
코스모스 공작소
[Unity] 유니티 uGUI로 체력바 구현하기 본문
안녕하세요! 오늘은 유니티에서 HpBar를 구현해보겠습니다.
모든 게임에서 hp를 나타내는 ui는 중요합니다. 간단하게 hpBar를 구현하는 방법에 대해 알아보겠습니다. 응용한다면 다양한 곳에서 쓰일 수 있습니다.
캐릭터 위에 떠다니는 hpbar를 만들어보겠습니다. 간략하게
- 원하는 오브젝트 밑에 canvas 배치
- Hpbar 관련 오브젝트 컴포넌트 배치
- Hpbar 관련 코드 작성
- 테스트
이런 순서로 진행해보겠습니다.
1. 오브젝트 아래에 Canvas 배치
Cube아래에 Canvas를 배치하고 아래에 hpBar , hpValue 오브젝트를 생성하였습니다. canvas는 World space로 조절해주시고 체력을 바라보고 있는 카메라를 넣어줍니다.
2. Hpbar 관련 오브젝트 컴포넌트 배치
hpBar, hpValue 의 오브젝트에 각 image 컴포넌트를 추가해주시고 hpBar는 배경 hpValue는 실제 hp의 수치를 표시할 부분입니다. 여기서 중요한 부분은 Image Type 입니다. 타입에는 simple, sliced, Tiled, filled 가 있는데 이번에는 filled를 이용해서 수평 방향으로 줄어드는 모양으로 hpbar를 표현할 것입니다. 이것으로 에디터에서 먼저할 오브젝트, 컴포넌트 생성은 완료되었습니다.
3. Hpbar 관련 코드 작성
새로 HpBar라는 component를 작성합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HpBar : MonoBehaviour
{
public GameObject objHpBar;
public GameObject objHpValue;
Image imageHpValue;
float HP_full = 100;
float HP_Now_Value = 0;
public float damage = 0.3f;
// Start is called before the first frame update
void Start()
{
HP_Now_Value = HP_full;
imageHpValue = objHpValue.GetComponent<Image>();
}
// Update is called once per frame
void Update()
{
if(HP_Now_Value > 0)
{
HP_Now_Value -= damage;
imageHpValue.fillAmount = HP_Now_Value / HP_full;
}
else
{
Debug.Log("Dead!");
}
}
}
Start에서 최대 Hp와 지금 Hp를 같게 배치해주고 현재 hp를 표기할 image 컴포넌트를 받아옵니다. 그리고 update에서 매번 데미지를 빼서 image.fillAmount에서 배치합니다. fillAmount는 0~1의 float값을 받습니다.
완성 후에 Cube아래에 스크립트를 배치하고 각 오브젝트와 damage수치를 넣습니다.
4. 테스트
실행해보면 적용된 것을 볼 수 있습니다.
지금까지 Hpbar를 간단하게 구현하는 방법에 대해 알아보았습니다. hp를 표기하는 방법은 여러 방법이 있을 수 있습니다. 이 방법을 채택한 중요한 부분은 Canvas가 오브젝트 아래에 들어가 있어서 오브젝트가 움직여도 캔버스는 따라 움직이게 할 수 있기 때문입니다. 다음에 더 유익한 기능을 가져와 보겠습니다! 감사합니다!
'프로그래밍 > Unity' 카테고리의 다른 글
[Unity] 유니티 해상도 고정하기 (1) | 2023.10.11 |
---|---|
[Unity] Visual Studio 유니티 연동하기 (1) | 2023.10.10 |
[Unity] 유니티 테크 스트림 다운 받아보기 (0) | 2023.10.05 |
[Unity] ScriptableObject 이용해서 데이터 만들고 사용해보기 (0) | 2023.09.29 |
[Unity] Asset 내부 파일 유니티 에디터에서 복사하기 (0) | 2023.09.12 |