프로젝트해요/게임_개발

[Unity] #12. FPS 게임 제작(3)

yenas0 2023. 8. 28. 22:35
반응형

 

 

목차

1. 에너미 제작(상태함수)
2. UI 제작(체력바)

 

 

 

1. 에너미 제작

 

public class EnemyFSM : MonoBehaviour
{
	// 에너미 상태 상수
	enum EnemyState
	{
		Idle,
		Move,
		Attack,
		Return,
		Damaged,
		Die
	}
		// 에너미 상태 변수
		EnemyState m_State;
		. . . (생략) . . .
}

 

에너미 상태를 만들기 위해서 EnemyFSM스크립트에 위에처럼 변수를 선언하고 switch문으로 case를 나누어 상태에 맞는 기능을 하도록 구현하였다.

 

이런 느낌.. 각각 원하는 동작과 함수를 구현해보면 된다.

 

 

상태전환하는 것도 유의해서 스크립트를 작성하도록..해야된다..

 

 

 

 

2. UI 제작

 

: 플레이어와 에너미의 체력을 표시하는 바 만들기

 

 

[Hierarcy] - [+버튼] - [UI] - [Slider] 해서 슬라이드 바 생성

 

 

임의로 조정할 수 없도록 Interactable항목을 체크 해제하고 핸들 오브젝트도 삭제한다.

Fill Area랑 Fill에서 핸들오브젝트 삭제로 인한 공백도 삭제해준다 ( Transform 값 0으로 조정)

 

색상도 원하는 색상으로 만들어 준다. (Fill 항목에서..)

 

 

체력바를 조정하기 위해서 PlayerMove 스크립트를 수정할 것이다.

UI를 사용하기 때문에 UnityEngine.UI 헤더함수를 추가한 뒤 사용한다.

 

 

 

최대 체력 변수와 hp슬라이더 변수를 전역변수로 설정하고 Update함수를 다음과 같이 추가수정해준다.

. . . (생략) . . .
void Update()
{
. . . (생략) . . .
// 4. 현재 플레이어 hp(%)를 hp 슬라이더의 value에 반영한다.
hpSlider.value = (float)hp / (float)maxHp;
}
. . . (생략) . . .

 

 

 

플레이어 오브젝트를 선택하고 PlayerMove 컴포넌트의 hpSlider항목에 앞서 만들 체력바 오브젝트를 적용시킨다.

 

 

 

Enemy의 체력바도 동일한 과정으로 만들어 주면 된다.

반응형