프로그래밍을 하기에 앞서 기초인 연산자(Operator)에 대해 알아보도록 하자.
연산자란 ? 상수, 변수값을 연산해주는 기호를 뜻한다.
사칙 연산자
사용 방법은 다음과 같다.
int level;
float strength = 15.5f;
int exp = 1500;
exp = 1500 + 300;
exp = exp - 10;
// +, -를 사용하여 직접 더할 수도 있고 뺄 수도 있다.
level = exp / 500;
// 레벨당 경험치 500
strength = level * 3.5f;
// 힘은 레벨에 비례해서 3.5만큼 증가한다.
int nextExp = 500 - (exp % 500);
// %는 몫이 아닌 나머지를 출력한다.
// 이런식으로 경험치 500당 레벨 1로 다음 레벨을 위한 남은 경험치가 되겠다.
이런식으로 사칙연산을 이용해
경험치, 레벨, 힘을 만들어보았다.
출력 방법과 결과는 다음과 같다.
Debug.Log("플레이어의 총 경험치는 ?");
Debug.Log(exp);
Debug.Log("플레이어의 레벨은 ?");
Debug.Log(level);
Debug.Log("플레이어의 힘은 ?");
Debug.Log(strength);
Debug.Log("다음 레벨까지 남은 경험치는 ?");
Debug.Log(nextExp);
/*
출력 결과는 다음과 같다.
플레이어의 총 경험치는 ?
1790
플레이어의 레벨은 ?
3
플레이어의 힘은 ?
10.5
다음 레벨까지 남은 경험치는 ?
210
*/
문자열에 대한 연산자
게임을 하다 보면 이런식으로 닉네임 앞에 타이틀이 붙는 것을 자주 볼 수 있다.
타이틀을 넣는 방법은 간단하다.
string playerName = "이기자부대찌개";
string title = "[스나이퍼]";
Debug.Log("플레이어 닉네임");
Debug.Log(title + " " + playerName);
// 문자열과 문자열 사이에 +를 사용하여 쓰면 된다.
결과는 다음과 같다.
비교 연산자
비교 연산자를 이용해 레벨이 최대인지 알아보자.
level = 3;
bool isFullLevel = false;
int fullLevel = 99;
ifFullLevel = level == fullLevel;
// 서로 같음을 배교할 때는 ==을 사용하면 된다.
// 반대로 같지 않을 때는 !=을 사용하면 된다.
// 출력 결과는 다음과 같다.
Debug.Log("플레이어는 만렙입니까 ?" + isFullLevel);
// 현재 플레이어의 레벨은 3이므로 false가 출력된다.
그러면 다른 비교 연산자를 사용해 레벨 5가 넘으면 튜토리얼을 끝내는 코드도 작성해보자.
level = 3;
bool isFullLevel = false;
int fullLevel = 99;
ifFullLevel = level == fullLevel;
Debug.Log("플레이어는 만렙입니까 ?" + isFullLevel);
// 출력 : false
bool isEndTutorial = level > 5;
Debug.Log("튜토리얼이 끝났나요 ? " + isEndTutorial);
// 현재 레벨과 5를 비교해서 현재 레벨이 5보다 크면 True값을 출력한다.
부등호는 다음과 같이 4가의 형태로 사용할 수 있다.
>(초과) 예) A > B A 가 B보다 크다.
<(미만) 예) A < B A 가 B보다 작다.
>=(이상) 예) A >= B A 가 B보다 크거나 같다.
<=(이하) 예) A <= B A 가 B보다 작거나 같다.
논리 연산자
그렇다면 AND와 OR을 사용해서도 나타내보자.
&& (AND) : 두 값이 모두 true일 때만 true 출력 예) A && B A와 B 모두 참일 경우에만 참
|| (OR) : 두 값 중 하나라도 true이면 true 출력 예) A || B A와 B 모두 거짓일 경우에만 거짓
int health = 30;
int mana = 25;
bool isBadCondition = health <= 50 && mana <= 20;
Debug.Log("플레이어의 상태가 나쁩니까 ? " + isBadCondition);
/*
코드를 해석하면 다음과 같다.
생명은 50 이하 이면서 마나가 20 이하입니까 ?
두 값이 모두 참일 때만 true를 출력하니
생명은 50보다 작지만 마나는 20보다 크기 때문에
결과는 false가 출력된다.
*/
// || (OR) 연산자를 사용하여 재작성하면 다음과 같다.
int health = 30;
int mana = 25;
bool isBadCondition = health <= 50 || mana <= 20;
Debug.Log("플레이어의 상태가 나쁩니까 ? " + isBadCondition);
/*
코드를 해석하면 다음과 같다.
생명이 50 이하 이거나 마나가 20 이하 안가요 ?
두 값중 하나라도 true이면 true를 출력하기 때문에
결과는 true가 출력된다.
*/
삼항 연산자
? A : B : true일 때 A, false일 때 B 출력
삼항 연산자는 여태 써왔던 연산자들과 달리 넣어줘야 할 값 또는 변수가 3개가 된다.
사용법은 다음과 같다.
bool isBadCondition = true;
string condition = isBadCondition ? "나쁨" : "좋음";
Debug.Log("플레이어의 상태가 나쁩니까 ? " + condition);
// : 앞에는 true 값일 때 나올 수 있는 값을 넣고
// : 뒤에는 false 값일 때 나올 수 있는 값을 넣는다.
/*
즉 ? 앞에 있는 값이 true이면 : 앞에 있는거, false이면 : 뒤에 있는거를 출력한다.
*/
// condition이 true값이기 때문에 결과는 나쁨이 출력된다.
참고 : 유튜브 골드메탈
'게임개발' 카테고리의 다른 글
프로그래밍 기초 - 함수 (0) | 2021.11.03 |
---|---|
프로그래밍 기초 - 반복문 (0) | 2021.11.02 |
프로그래밍 기초 - 조건문 (0) | 2021.10.28 |
프로그래밍 기초 - 변수 (0) | 2021.10.21 |
[Unity] 기본 세팅 & 도구 소개 (0) | 2021.10.20 |
댓글