본문 바로가기

분류 전체보기

[00] 초기 기획 및 구상 만드려고 하는 것은 카드게임 이마에 붙인 카드가 인디언 모습과도 같다고 해서 붙여진 이름으로, 과거 더 지니어스에 나왔던 데스매치 게임이기도 하다. 게임으로 구현할 기본적인 룰은 원본과 같다. 구현할 내용을 적어보자. 1. 1-10까지 값을 가지고 있는 카드를 2장씩 총 20장을 섞어서 두 명에게 나눠 분배한다. 2. 승, 패 , 무승부 판정과 출력. 3. UI 보드 출력 4. 게임 구성. 4-1. Setting Phase - Player1과 Player2가 한 게임에 기본적으로 걸리는 칩의 개수를 테이블에 세팅함. 4-2. Bet Phase - 현재 턴인 플레이어가 다이, 체크, 콜, 삥, 쿼터, 하프, 따당 중 골라서 배팅한다. 이후 Bet, 혹은 Raise Phase에 돌입한다. 4-3. Raise.. 더보기
[10] Card And Gun 개발일기 10. Player 이동과 카메라 이동 많은 부분들이 개선되었지만, 여전히 가장 중요한 Player의 움직임이 어색하다. Speed의 종류를 구분하고, 물체의 회전을 Mouse X의 입력을 받아 수평 방향 회전을 해결하자. 그렇지만 이 경우 사소한 문제가 있는데, 마우스를 너무 위로 올리면 180도 돌아버린다는 것이다. 사실 오브젝트 자체가 돌아가는 것도 이상하지만, 지금은 에셋을 적용하지 않은 구체의 형태이니 그냥 넘어가고, 에셋을 적용한 이후 고치도록 하자. 나중에는 분명 캐릭터의 고개와 총, 카메라만 돌아가야 할 것이다. 그걸 해결하기 위한 함수가 바로 Mathf에 내장되어 있는 Clamp. 각도의 최소치와 최대치를 더해준다. 카메라의 Y 각을 +-85도로 제한하여 카메라가 돌아가는 것을 막아주자. 더보기
[09] Card And Gun 개발일기 09. UI 다듬기와 홈 화면 그림판에서 그림 솜씨를 뽐내본다. 이 HP Bar가 기존의 것을 대체할 것이다. Enemy를 타격하면, Enemy의 정보가 HUD(전투용 UI)에 업데이트된다. 어느정도 사격장같은 느낌이 갖춰졌으니, 이 사격장으로 이동하기 전의 메인 화면을 만들어보자. 역시 그림솜씨를 뽐내어 홈 화면을 만들어준다. 나중에는 여러가지의 버튼이 추가되겠으나, 지금 당장은 방금 만든 사격장의 Scene만 있기 때문에, 버튼 하나면 충분하다. 이런 버튼들의 관리는 GameManager라는 빈 오브젝트와 스크립트를 생성하여 관리해줄 것이다. SceneManager의 LoadScene 함수를 사용하여 장면을 이동하는데, 이때 Build Settings에서 이동할 Scene가 미리 올라와 있어야 한다... 더보기
[08] Card And Gun 개발일기 08. Monster HP와 HUD 이제 Enemy와 총알의 상호작용을 만들어 볼 것이다. 적이 있으면, 적의 HP를 보여주기도 하면 좋을 것 같다는 생각에서 나왔다. HP는 화면의 UI에 추가해서 적의 위치를 추적하면서 따라다니면 될 것 같다는 생각이 든다. 하지만 동시에, UI와 HUD를 구분하자는 생각도 든다. 플레이어가 조작할 수 있는 메뉴 버튼과 전투에서 변화하는 값을 다루는 HP, Money등은 느낌이 다르지 않은가? 그래서 생각한 방법은, 현재 공격중인 몬스터의 HP를 위에 띄워주는 것이다. 그걸 위해서 체력바 UI를 만들었다. 그렇다면 이제 몬스터의 HP와 위의 체력바를 연동하는 것이 과제이다. Bullet 태그를 가진 오브젝트가 Enemy에 닿으면, Enemy의 TakeDamage() 함.. 더보기
[05-07] Card And Gun 개발일기 5. 버튼 만들기 게임 중, 드러난 마우스 커서를 조작해야하는 일이 생기면, 보통 어떤 버튼을 누르는 일이다. 직접 버튼을 만들어보고, 작동하는 함수를 구현해보자. 버튼 자체를 만드는 것은 어렵지 않다. 또, 버튼의 작동을 스크립트로 설정할 수도 있지만 간단한 액션 정도는 엔진 내에서 해결하는 편이 빠르다. 6. 카메라 전환하기 FPS 게임을 만들다보면, 카메라의 시점을 바꿔야하는 상황이 온다.(지향사격, 조준사격 등) 그런 카메라를 변환하는 함수를 버튼 클릭을 통해 실행하도록 만들어보자. 우선은 엔진 내에서 카메라를 두 개 배치한다. 각각의 카메라에서 보이는 시점은 위와 같다. 이제 버튼 클릭을 통해 둘 사이를 전환해야한다. 코드 내에서 Camera 변수 둘을 선언한 뒤, enabled 상태를 변경해주.. 더보기
아이콘, 로고 변경, 블로그 소개 내 블로그는 무슨 목적으로 글이 올라오는 블로그일까? 아직 올린 글이 얼마 되지 않기에 알기 쉽지 않다. 또한 많은 글이 올라오더라도 하나하나 읽어서 확인하기는 어려운 노릇이다. 그러니 블로그의 아이콘, 로고, 소개글을 변경하여 찾아볼 수 있도록 하자. 우선 블로그 설정에서 블로그 이름과 닉네임, 설명, 아이콘, 파비콘, 프로필을 바꿀 수 있다. 적당한 사진을 골라 넣으면 되겠지만, 아직 없으므로 대충 그림판으로 만들어서 넣어보자. 프로필, 설명, 아이콘을 그림판으로 그려넣었다. 그런데 이제 파비콘이라는 단어가 눈에 띈다. 파비콘은 홈페이지의 위쪽에 뜨는 로고를 뜻한다.(구글은 G, 카카오는 K, 네이버는 N, 다음은 D) 이 파비콘의 파일 형식은 ICO. 그림판에서는 지원하지 않는 파일 형식이다. 그러.. 더보기
[03-04] Card And Gun 개발일기 03. 플레이어 이동 위의 1, 2번에서는 플레이어 에셋을 받아 사용했지만, 직접 플레이어를 구현하는 방법도 존재한다. 배운 플레이어의 이동방식에는 여러가지 방식이 있다. 이번에 써 볼 첫 번째 방법은 바로 속도값을 주는 것. 가장 간단한 방식으로 특정 키를 입력 받았을 때, 그 방향으로 이동 시키는 것이다. 또 다른 방법으로는 물체의 물리적 바디, RigidBody를 생성하고 그것에 간섭하는 방식이다. Rigidbody를 생성하고, 스크립트에서 받아오자. 그리고 특정 키를 입력하면 반응하는 GetKeyDown(KeyCode) 보다는, InputManager를 활용한 시스템 사용을 권장한다. 다른 플랫폼에서 연동이 수월하기 때문이다. InputManager에서 Vertical, Horizontal, Ju.. 더보기
[01-02] Card And Gun 개발일기 01. HP Bar 제작. 준비물은 HP Bar로 사용할 이미지. (차 있는 이미지, 비어있는 이미지) UI Canvas에 HP바 이미지 두개를 겹치고(하위 오브젝트를 상위 오브젝트 크기에 꽉 채우는 식으로) 캔버스 내에서 HP 이미지 위치를 설정한다. 유니티의 Image에는 fillAmount라는 변수값을 통해 이미지 전체의 몇 %만 나타낼 지 고를 수 있다. HP 바는 현재 HP/ 최대 HP의 비율만큼 왼쪽에서 채우면 해결된다. 그러면 다음으로는 플레이어의 HP 변수와 Image를 연동시키는 것. 매 프레임 호출하면 비효율적이므로 Action을 사용하여 필요한 때만 Hp Bar의 변화를 호출한다. 작업이 끝났으면 OnHealthChanged()를 함수 내에 호출하여 HP의 변화를 체력바에서 확인할 수.. 더보기