오늘은 C#에 대한 새로운 강의를 수강하고 연습 프로젝트를 마저 진행해볼 예정이다. 이미 아는 이용은 복습한다고 생각하고 새로 배우는 내용도 정리해보겠다.
Visual Studio 설치 방법, 프로젝트 생성, 솔루션 탐색기 사용법 등 개발에 필요한 기본 세팅과 UI 구성 익히기.
코드 작성 및 실행
코드를 작성하고 빌드/실행하는 과정
true와 false와 같이 논리 값을 직접 표현한다.null, 문자 리터럴에서 이스케이프 문자를 사용하는 경우도 있다.Console.ReadLine을 사용한 사용자 입력 받기var 키워드 활용var 키워드는 C# 3.0부터 도입된 기능으로, 컴파일러가 변수의 타입을 초기화 시 할당되는 값에 따라 자동 추론하도록 해준다.
var message = "Hello, World!"; // message는 string 타입으로 추론됨
var number = 42; // number는 int 타입으로 추론됨
var pi = 3.14; // pi는 double 타입으로 추론됨
코드의 가독성을 높이고, 특히 제네릭 타입이나 복잡한 타입을 다룰 때 선언 코드를 단순화할 수 있다.
타입을 명시적으로 적지 않아도 되므로, 코드 작성 시 편의성이 높아진다.
주의사항:
변수 선언 시 반드시 초기화해야 한다. 초기화 없이 var를 사용할 경우 컴파일러가 타입을 추론할 수 없기 때문이다.
코드 읽는 사람에게 변수의 타입이 바로 보이지 않을 수 있으므로, 지나치게 남용하지 않고 상황에 맞게 사용하는 것이 좋다.
오늘 남은 시간은 저번주에 이어서 지금까지 진행했던 랜덤 타워 디펜스 모작을 이어서 진행할 것이다. 저번에 두 개의 타워를 합쳐서 업그레이드 하는 시스템까지 구현을 했는데, 오늘은 웨이브에 따라 적의 체력이 올라가는 시스템을 구현하고자 한다.
GameManager.cs에서 wave변수를 선언한다. public int wave = 1;
Enemy.cs에서 Start()함수를 제거하고 Initialize(int wave)함수를 정의한다. public void Initialize(int wave)
{
maxHealth = 1 + wave * 3;
currentHealth = maxHealth;
}
EnemySpawner.cs에서 Enemy오브젝트에 있는 Enemy.cs를 불러와서 currentWave 값을 갱신하기 위한 코드를 작성한다. enemyObj.GetComponent<Enemy>().Initialize(currentWave);
오늘은 간단하게 레벨 시스템만 만들도록 하겠다. 내일부터는 발제 때 주어졌던 개인 C# 프로젝트인 TextRPG를 만들어 볼 예정이다. 내일은 C# 2주차 강의를 마저 수강하고, TextRPG의 구조를 미리 구상해보고, 게임의 전체적인 뼈대를 잡는 작업을 해보겠다.