본문 바로가기

NGUI HP Bar 만들기 HP나 MP나 그냥 스프라이트를 만든다음 해도 되지만 NGUI로 편하게 만들 수 있기 때문에 NGUI를 이용하였다. 우선 필요한 리소스를 NGUI Atlas로 만든다음 NGUI Sprite 오브젝트로 만든다. UI를 보이기 위해 2D UI를 추가하고 Camera 밑에 UI들을 붙일 Panel을 추가해준다. Panel 내부에 NGUI Sprite로 Atlas로 만들어둔 리소스들을 추가한다. HP나 MP Bar같은 것들은 피가 다는 것을 보여주기 위해 뒷 배경을 보여주며 닳아가는 효과를 줄 수 있고 아에 배경없이 피막대기가 까이는 것을 보여줄 수 있다. 나는 뒷배경을 주고 피가 까이는것을 보여주도록 만들기 위해 Foreground와 Background를 Sprite 두개를 만들었다. Foreground에서는.. 더보기
몬스터 FSM 구현 실용적인 예제로 본 게임 인공지능 책을 보고 C++ FSM을 구현할 때는 별 문제가 없었지만 이중상속이 지원되지 않는 유니티 C# 환경에서 FSM을 구현 하려면 딜리게이트나 코루틴을 이용해야 하는데 처음에는 코루틴을 이용해 구현하려했다가 실패를 했고 딜리게이트 역시 내 스스로 딜리게이트 개념을 잘 이해하고 있지 않아서인지 꼬이게 되어서 다른 방법을 인터페이스 개념을 생각해서 따로 만들게 되었다. 기본이 되는 FSM_State 클래스 - MonoBehaviour를 상속받지 않기 때문에 유니티에서 자동으로 업데이트 하지 않는다. 다른 상태들의 인터페이스를 제공할 추상클래스 abstract public class FSM_State { abstract public void EnterState(T _Slime);.. 더보기
가상 조이스틱 구현 포폴 개발초기에는 키보드로 테스트하였기에 별 문제없이 테스트했지만 유니티 어플을 통해 스마트폰으로 테스트하려니 가상조이스틱이 필요하게 되었다. NGUI 튜토리얼에 가상 조이스틱이 있다고 들었는데 찾지를 못 해서 스스로 구현하게 되었는데 조이스틱을 만들 때 기준이 되는 큰원, 내부에 왔다갔다 할 작은 원, 작은원의 최대 위치를 가르킬 빈오브젝트 이렇게 3개의 게임오브젝트를 이용하였다 코드 요약 1. 오브젝트가 눌렸을 때 눌려진 터지번호를 기억하고 update에서 이용한다. 터치번호가 없다면 update에서는 동작을 하지않는다. 2. 기억된 터치번호를 이용하여 터치된 위치를 스크린 좌표에서 직교좌표계로 좌표값으로 변경한다. 3. 변경된 좌표값에 작은원 오브젝트인 Inner_Pad를 이동시킨다. 이동된 작은원.. 더보기