간단하게 c#을 복습하며 예전에 했던 TextRPG 만들기를 가지고 놀아볼까 합니다. rpg를 시작하려면 플레이어 캐릭터를 만들어야 하겠죠? 다음은 플레이어 직업 고르기를 위한 코드 입니다. 전체 코드 namespace CSharp { class Program { enum ClassType { None = 0, Warrior = 1, Rogue = 2, Mage = 3 } static void Main(string[] args) { ClassType playerClassChoice = ClassType.None; while (true) { playerClassChoice = ChooseClass(); if(playerClassChoice != ClassType.None) break; } } static ..
전체 글
C#, 유니티 게임 개발자제 첫 작품인 호사원을 잡아라! 게임을 플레이스토어와 앱스토어에 출시하게 되었습니다! 회사에서 개발 팀장님의 지도 하에 기획과 개발을 전부 담당하여 진행하였고 디자이너 두 분과 협업하였습니다. 게임 링크: https://play.google.com/store/apps/details?id=com.bancogames.hidecatch&hl=ko 호사원을 잡아라 - Google Play 앱 전라감영을 배경으로 호사원들이 펼치는 스릴 만점 숨바꼭질! play.google.com 게임 간단 설명 :호사원을 잡아라! 게임은 캐주얼-멀티 게임입니다. 플레이어는 전주의 마스코트 캐릭터 호사원이 되어 전라감영을 배경으로 하는 무대에 진입하게 됩니다. 게임이 시작되면 플레이어와 똑같이 생긴 수십 마리의 호사원 NPC들과 ..
https://nybot-house.tistory.com/92#comment15051682 함수/메서드 컴퓨터 과학에서 함수란? 함수(function), 서브루틴(subroutine), 루틴(routine), 메서드(method), 프로시저(procedure)는 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분이다. 즉, '특정한 작업을 위해 nybot-house.tistory.com 위 게시글에서 ref 와 out을 잠시 언급했었다. 메서드에서 ref 와 out 키워드를 사용하면 pass by value가 아니라 pass by reference가 된다. 이는 메서드가 전달된 매개변수 값을 수정할 수 있다는 의미이다. (잘 모르겠다면 https://nybot-house.tistory.com/49). 1..
컴퓨터 과학에서 함수란? 함수(function), 서브루틴(subroutine), 루틴(routine), 메서드(method), 프로시저(procedure)는 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분이다. 즉, '특정한 작업을 위해 재활용할 수 있도록 구현한 코드 블록'을 의미한다. 간단하게 풀어 설명하면 프로그래밍에서 함수/메서드란 어떤 기능들의 묶음(코드 블록), 또는 어떤 매개변수를 넣었을 때 특정한 결과값을 도출하는 것으로 볼 수 있다. 코드가 방대해 지면 질수록 Main 함수에 모든 코드를 나열하는 것은 불가능해진다. 예를 들어 온라인 게임 기준으로 프로그램의 코드 줄이 몇십만 줄의 수준이 되는데, 이 줄을 모두 메인 함수에 넣으면 가독성이 너무나도 떨어질 것이다. (개인적인 기준으로..
break, continue, return 등 반복문, 함수의 흐름을 제어할 수 있는 키워드에 대해 알아보자. 1. break 반복문을 돌다가 break를 만나게 되면 반복문은 그 즉시 종료되고(Loop문을 마무리 하지 않고 즉시), 다음 코드 블럭을 실행하게 된다. 아래 코드는 간단하게 짜 본 소수를 찾는 반복문인데, for 문을 실행하자마자 바로 조건을 만족하기에 계속해서 끝까지 loop문을 돌리는 것은 심각한 낭비가 된다. 따라서 break문을 통해 나머지 loop를 생략하고 바로 for문을 탈출할 수 있다. namespace CSharp { class Program { static void Main(string[] args) { int num = 1000000; //소수: 자기 자신과 1로만 나뉘..
별것은 아니고 간단하게 입출력 기능과 조건문 활용해서 가위바위보 게임처럼 구성해 봤습니다. 게임이라고 하기는 좀 민망하지만 갑자기 심심해서; namespace CSharp { class Program { static void Main(string[] args) { //0: 가위 1:바위 2:보 const int SCISSOR = 0; const int ROCK = 1; const int PAPER = 2; Random rand = new Random(); int aiChoice = rand.Next(0, 3); // 0~2 사이의 랜덤 값 int choice = Convert.ToInt32(Console.ReadLine()); switch(choice) { case SCISSOR: Console.Writ..
Instantiate, PhotonNetwork.Instantiate 일반적으로 유니티는 게임 오브젝트의 생명주기를 관리해 주기 위해 Instantiate와 Destroy 함수를 사용한다. public GameObject obj; void Start() { //Instantiate(생성할 오브젝트, position, rotiation) //Quaternion.identity = rotation이 (0,0,0)임을 의미 Instantiate(obj, new Vector3(0,0,0), Quaternion.identity); } 생성하려는 오브젝트는 Scene에 오브젝트로 생성되어 있어야 선택이 가능하다. 게임 실행 후 Hierarchy창을 보면, 선택한 게임오브젝트이름(clone) 이라는 명칭으로 복사 생..
인터페이스란? 인터페이스는 클래스와 유사한 문법을 지닌(하지만 근본적으로는 다른), "상이한 시스템간의 계약 정보를 표현한 구조체" 로 정의할 수 있다. 추상 멤버로만 구성된 Abstract Base Class와 개념적으로 유사하며, 어떤 클래스가 인터페이스를 가지는 경우 해당 인터페이스의 모든 멤버에 대한 구현을 제공해야 한다. 한 클래스는 여러 개의 인터페이스를 가질 수 있다. 쉽게 풀어서 비유하면 인터페이스는 계약서, 또는 설계도로 생각하면 된다. 인터페이스 문법 1. 정의 인터페이스는 구현 없이 메서드 선언만 포함되어 있다. class 키워드 대신 interface 키워드를 사용한다. I로 시작하도록 네이밍 해야 한다. 클래스와 다르게 인터페이스는 정의가 없고 선언만 있다. (Only declar..