⌨게임 개발 23

[Unity/프로젝트] 04 화살표 피하기 게임(2)

개요 게임에 필요한 핵심 기능들을 구현합니다. 본문에서 다룰 기능들은 다음과 같습니다.캐릭터의 이동충돌 감지프리팹(Prefab) 생성   구현   캐릭터의 이동 좌우 화살표 방향키를 입력하면 해당 방향으로 캐릭터를 수평 이동하는 간단한 이동 기능을 구현합니다. 코드는 캐릭터의 컴포턴트로 포함된 PlayerController.cs 에 작성합니다.  PlayerController.csvoid Update(){ // 왼쪽 화살표가 눌렸을 때 if (Input.GetKey(KeyCode.LeftArrow)) { // 거리 = 시간 * 속도 m_MvX = Time.deltaTime * (-1.0f * m_MvSpeed); transform.Translate(m_MvX, 0, 0); } // 오른쪽 화살표가 ..

[Unity/프로젝트] 04 화살표 피하기 게임(1)

개요 랜덤 위치에 생성되어 떨어지는 화살표들을 좌우로 피하는 게임 개발   기능 주요 규칙은 다음과 같습니다.좌우 방향키만을 사용해 캐릭터를 조작합니다.화살표와 충돌하면 0.1의 체력을 잃습니다(최대 체력 1).사과와 충돌하면 gold를 +10 획득합니다.일정 시간마다 낙하 물체의 낙하 속도가 증가하고 생성 주기가 짧아집니다.   UI 구성   게임 화면    사용자의 현재 체력을 시각적으로 나타내기 위한 이미지 HpGage게이지의 최대값은 1이고 체력 감소량에 비례해 이미지가 반시계 방향으로 줄어듭니다.게이지 값이 0이 되면 게임이 종료됩니다.   사용자의 현재 골드량을 출력하는 텍스트 GoldText사과와 1회 충돌할 때마다 점수 텍스트를 10점 더한 값으로 갱신합니다.   게임 종료 화면    게임..

[Unity/프로젝트] 03 룰렛(2)

개요 게임에 필요한 핵심 기능들을 구현합니다. 본문에서 다룰 기능들은 다음과 같습니다.회전하는 룰렛 이미지파워 게이지입력 제한결과값 추출   구현 우선 게임을 상태별로 나누어서 구현할 수 있도록 게임의 상태를 열거형으로 변수화 합니다.public enum GameState{ PowerIng = 0, // 대기 상태 RotateIng = 1, // 룰렛 회전 상태 GameEnd = 2 // 게임 종료 상태} PowerIng사용자 입력을 받아 파워 값 설정이 가능한 상태입니다. RotateIng룰렛이 회전 중인 상태로 룰렛 회전 관련 사용자의 입력을 모두 무시합니다. GameEnd5회 시행을 마치고 게임이 종료된 상태입니다.   회전하는 룰렛 이미지 룰렛 회전시키기 기능 관련 세부 단계는 ..

[Unity/프로젝트] 03 룰렛(1)

개요 1회 시행마다 0~9 숫자 중 하나를 랜덤하게 추출하는 간단한 룰렛 시스템 개발   기능 주요 규칙은 다음과 같습니다.마우스 입력을 유지하면 파워 게이지(0~100)가 차오릅니다.파워 값이 클 수록 룰렛을 회전시키는 힘이 강해집니다.결과값은 룰렛의 회전 속도가 0이 될 때 바늘이 가리키는 지점에 위치한 값입니다.5회 시행 시 게임이 종료됩니다.   UI 구성    랜덤 수를 추출하는 과정을 시각적으로 나타내기 위한 룰렛 이미지 Roulette마우스를 입력한 후 놓으면 반시계 방향 회전합니다.고정된 위치의 바늘 이미지에 최종 도달한 수를 결과로 반환합니다.   사용자의 마우스 입력 유지 시간을 수치화하여 나타내는 이미지 PwBar   1회 시행마다 추출된 값을 출력하는 텍스트 배열 NumTexts  ..

[Unity/프로젝트] 02 가위바위보 게임(2)

개요 게임에 필요한 핵심 기능들을 구현합니다. 본문에서 다룰 기능들은 다음과 같습니다.사용자 입력 받기승패 판정대기 애니메이션최고 점수 기록   구현 구현 단계에서 필요한 UI 관련 변수들은 다음과 같이 선언했습니다.   사용자 입력 받기 가위 바위 보 입력은 기능적으로 매우 유사하기 때문에 하나의 공통 이벤트 메서드로 작성합니다. 하지만 사용자의 입력값에 따라 연산 과정이 달라져야 하므로 사용자 입력이 가위일 경우 0, 바위의 경우 1, 보의 경우 2을 공통 이벤트 메서드 BtnSelOnClick 의 인수로 전달했습니다. 선택지마다 0~2 범위 정수를 부여한 이유는 결과 출력 단계에서 필요한 배열의 인덱스로 사용하기 위함입니다.private void BtnGawiOnClick(){ ButtonOnCli..

[Unity/프로젝트] 02 가위바위보 게임(1)

개요 가위 바위 보 중 패를 무작위로 생성하고 기존의 가위바위보 규칙을 통해 승패를 결정하는 게임 기획   기능 주요 규칙은 다음과 같습니다.사용자가 가위, 바위, 보 버튼 중 하나를 눌러 패를 결정하면 Cpu 도 무작위 패를 생성합니다.가위 바위 보 규칙에 의해 승패를 결정합니다.기본 금액은 1000 입니다. 게임에서 승리할 경우 +100, 패배할 경우 -200 으로 처리합니다.보유 금액이 0 이 되면 게임이 종료됩니다.  UI 구성    유저의 현재 보유 금액 및 승리 횟수를 출력하는 텍스트 UserInfo_Text사용자가 승리할 경우 보유 금액 +100 및 승리 횟수 +1, 패배할 경우 보유 금액 -200 및 패배 횟수 +1   유저의 입력을 받는 버튼 Gawi_Btn  Bawi_Btn  Bo_Bt..

[Unity/프로젝트] 01 홀짝 게임(2)

개요 사용자의 입력을 받는 버튼의 기능을 구현합니다. 구현하는 버튼은 다음과 같습니다.사용자가 짝을 선택할 경우 입력 받는 Even_Btn 사용자가 홀을 선택할 경우 입력 받는 Odd_Btn 게임을 초기화 시키는 Replay_Btn   구현  변수 목록은 다음과 같습니다.    Even_Btn, Odd_Btn  먼저 Even_Btn 에 적용할 이벤트 메서드 EvenBtnClick 를 선언합니다.   EvenBtnClick 의 메서드 포인터를 AddListener 의 인수로 전달합니다(델리게이트 형식). 이벤트 메서드를 등록하는 과정은 게임 시작 시 한 번만 수행하면 충분하므로 Start 메서드에 작성합니다.  이벤트 메서드 EvenBtnClick 에 포함할 주요 기능은 다음과 같습니다.사용자의 선택 확인..

[Unity] 02 버튼 입력 대기

개요 유니티의 버튼 UI가 사용자의 입력을 받도록 대기시키는 여러가지 방법들 소개   본문 기본적으로 버튼 입력을 받도록 대기하는 기능은 함수를 통해 구현합니다. 대표적인 구현 방법은 다음과 같습니다.람다식 표현을 통한 구현 방법델리게이트(Delegate) 함수를 통한 구현 방법유니티 인스펙터(Inspector) 창에서 직접 설정하는 벙법   람다식 표현을 통한 구현  네임스페이스 UnityEngine.Events 에서 제공하는 onClick 이벤트의 멤버 함수 AddListener 를 통해 사용자의 입력을 감지합니다. 입력 시 수행할 동작은 AddListener 인수에 람다식 으로 전달합니다. 기본 형태는 다음과 같습니다.m_MyButton.onClick.AddListener(() =>{ // List..

[Unity/프로젝트] 01 홀짝 게임(1)

개요 1~6 범위의 무작위 숫자를 생성하고 생성된 숫자의 홀수 짝수 여부를 맞추는 게임 기획   기능 주요 규칙은 다음과 같습니다.사용자가 홀짝 버튼을 누를 때마다 1~6 무작위 숫자가 생성되고 사용자의 선택과 일치하면 승리로 판정합니다. 기본 금액은 1000 입니다. 게임에서 승리할 경우 +100, 패배할 경우 -200 으로 처리합니다.보유 금액이 0 이 되면 게임이 종료됩니다.  UI 구성    유저의 현재 보유 금액 및 승리 횟수를 출력하는 텍스트 UserInfo_Text사용자가 승리할 경우 보유 금액 +100 및 승리 횟수 +1, 패배할 경우 보유 금액 -200 및 패배 횟수 +1   유저의 입력을 받는 버튼 Even_Btn  Odd_Btn   유저의 선택에 따른 결과값을 출력하는 텍스트 Resu..

[C#] 13 List

정의 인덱스로 접근할 수 있는 강력한 형식의 개체 목록  ▼ 기본 속성더보기 네임스페이스               System.Collections.Generic어셈블리                       System.Collections.dll소스                               List.cs              기능   기본 형식 다음은 목록 생성의 기본 형식입니다.List ListName = new List();List ListName = new List(Int32); T 는 사용자가 지정한 데이터형 입니다. 매개변수로 값을 전달할 경우 해당 크기를 갖는 목록을 생성합니다.   기본 메서드 List 클래스는 생성된 목록을 검색, 정렬 및 조작하는 메서드를 기본적으로 제공..