본문 바로가기
UNITY

유니티 C# 프로그래밍 기초

by J데빌 2022. 6. 29.

골드메탈 유니티 강좌를 보고 정리한 내용입니다.

변수 타입과 조건문, 반복문, 함수, 클래스 등 기본문법에 대해서 따라해본 코드 내용입니다.

 

NewBehaviourScript.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour {
string title = "전설의";
string playerName = "나검사";
int level = 5;
float strength = 15.5f;
int exp = 1500;
int health = 30;
int mana = 25;
bool isFullLevel = true;
void Start() {
Debug.Log("Hello Unity");
//1. 변수
/*int level = 5;
float strength = 15.5f;
string playerName = "나검사";
bool isFullLevel = true;*/
Debug.Log("용상의 이름은?");
Debug.Log(playerName);
Debug.Log("용상의 레벨은?");
Debug.Log(level);
Debug.Log("용상의 힘은?");
Debug.Log(strength);
Debug.Log("용상의 만랩인가?");
Debug.Log(isFullLevel);
//2. 그룹형 변수
//2-1.문자열 배열
string[] monsters = { "슬라임", "사막뱀", "악마" };
Debug.Log("맵에 존재하는 몬스터");
Debug.Log(monsters[0]);
Debug.Log(monsters[1]);
Debug.Log(monsters[2]);
//2-2. 정수형 배열
int[] monsterLevel = new int[3];
monsterLevel[0] = 1;
monsterLevel[1] = 6;
monsterLevel[2] = 20;
Debug.Log("맵에 존재하는 몬스터의 레벨");
Debug.Log(monsterLevel[0]);
Debug.Log(monsterLevel[1]);
Debug.Log(monsterLevel[2]);
//2-3. 리스트
List<string> items = new List<string>();
items.Add("생명물약30"); //리스트 값 넣기
items.Add("마나물약30");
Debug.Log("가지고 있는 아이템");
Debug.Log(items[0]);
Debug.Log(items[1]);
//items.RemoveAt(0); //특정 인덱스(0번째) 리스트 삭제 방법
//3. 연산자
//int exp = 1500;
exp = 1500 + 320;
exp = exp - 10;
level = exp / 300;
strength = level * 3.1f;
Debug.Log("용사의 총 경험치는?");
Debug.Log(exp);
Debug.Log("용사의 레벨은?");
Debug.Log(level);
Debug.Log("용사의 힘은?");
Debug.Log(strength);
int nextExp = 300 - (exp % 300);
Debug.Log("다음 레벨까지 남은 경험치?");
Debug.Log(nextExp);
//string title = "전설의";
Debug.Log("용사의 이름은?");
Debug.Log(title + " " + playerName);
int fullLevel = 99;
isFullLevel = level == fullLevel;
Debug.Log("용사는 만렙입니까? " + isFullLevel);
bool isEndTutorial = level > 10;
Debug.Log("튜토리얼이 끝난 용사입니까? " + isEndTutorial);
//int health = 30;
//int mana = 25;
//bool isBadCondition = health <= 50 && mana <= 20;
bool isBadCondition = health <= 50 || mana <= 20;
Debug.Log("용사의 상태가 나쁩니까? " + isBadCondition);
string condition = isBadCondition ? "나쁨" : "좋음";
Debug.Log("용사의 상태가 나쁩니까? " + condition);
//4. 키워드
//int float string bool new list
//5. 조건문
if (condition == "나쁨") {
Debug.Log("플레이어 상태가 나쁘니 아이템을 사용하세요");
} else {
Debug.Log("플레이어 상태가 좋습니다.");
}
if (isBadCondition && items[0] == "생명물약30") {
items.RemoveAt(0);
health += 30;
Debug.Log("생명포션30을 사용하였습니다.");
} else if (isBadCondition && items[0] == "마나물약30") {
items.RemoveAt(0);
mana += 30;
Debug.Log("마나포션30을 사용하였습니다.");
}
/**
switch (변수) {
case 값1:
break;
case 값2:
break;
case 값3:
break;
}
**/
switch (monsters[1]) {
case "슬라임":
case "사막뱀":
Debug.Log("소형 몬스터가 출현!");
break;
case "악마":
Debug.Log("중형 몬스터가 출현!");
break;
case "골렘":
Debug.Log("대형 몬스터가 출현!");
break;
default:
Debug.Log("??? 몬스터가 출현!");
break;
}
//6. 반복문
while (health > 0) {
health--;
if (health > 0) {
Debug.Log("독 데미지를 입었습니다. " + health);
} else {
Debug.Log("사망하였습니다.");
}
if (health == 10) {
Debug.Log("해독제를 사용합니다.");
break;
}
}
for (int count = 0; count < 10; count++) {
health++;
Debug.Log("붕대로 치료 중 ..." + health);
}
for (int index = 0; index < monsters.Length; index++) {
Debug.Log("이 지역에 있는 몬스터 : " + monsters[index]);
}
foreach (string monster in monsters) {
Debug.Log("이 지역 있는 몬스터 : " + monster);
}
//7. 함수(메소드)
//health = heal(health);
heal();
for (int index = 0; index < monsters.Length; index++) {
Debug.Log("용사는 " + monsters[index] + "에게 " +
battle(monsterLevel[index]));
}
//8. 클래스
//Actor player = new Actor();
Player player = new Player();
player.id = 0;
player.name = "나법사";
player.title = "현명한";
player.strength = 2.4f;
player.weapon = "나무 지팡이";
Debug.Log(player.talk());
Debug.Log(player.hasWeapon());
player.levelUp();
Debug.Log(player.name + "의 레벨은 " + player.level + " 입니다.");
Debug.Log(player.move());
}
/*int heal(int currentHealth) {
currentHealth += 10;
Debug.Log("힐을 받았습니다. " + currentHealth);
return currentHealth;
}*/
void heal() {
health += 10;
Debug.Log("힐을 받았습니다. " + health);
}
string battle(int monsterLevel) {
string result;
if (level >= monsterLevel) {
result = "이겼습니다.";
} else {
result = "졌습니다.";
}
return result;
}
}

 

 

Actor.cs

public class Actor {
public int id;
public string name;
public string title;
public string weapon;
public float strength;
public int level;
public string talk() {
return "대화를 걸었습니다";
}
public string hasWeapon() {
return weapon;
}
public void levelUp() {
level = level + 1;
}
}

 

Player.cs

public class Player : Actor {
public string move() {
return "플레이어는 움직입니다.";
}
}

 

'UNITY' 카테고리의 다른 글

유니티 키보드와 마우스 입력  (0) 2022.06.30
유니티 게임오브젝트의 흐름 LifeCyle  (0) 2022.06.29

댓글