누구나 알고 있는 것들이지만 나름대로 정리를 해놓으려고 한다.
int level = 5;
float strength = 15.5f;
string playerName = "나검사";
bool isFullLevel = false;
가장 기본적인 고정형 그룹형 변수.
string[] monster = { "슬라임", "사막뱀", "악마" };
Debug.Log("맵에 존재하는 몬스터");
Debug.Log(monster[0]);
Debug.Log(monster[1]);
Debug.Log(monster[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]);
.Lenth
기능이 추가된 가변형 그룹형 변수.
List<string> items = new List<string>();
Debug.Log(items[0]);
Debug.Log(items[1]);
리스트는 배열과는 다르게 안에 들어있는 데이터를 삭제할 수 있다.
items.RemoveAt(0);
이런식으로 RemoveAt()함수에서 괄호안에 지우고 싶은 데이터가 있는 번지수를 넣으면 그 번지수에 있는 데이터가 삭제되게 된다.
삭제를 한 후 Debug.Log(items[0]);를 통해 그 데이터를 가져오려고 시도한다면

크기를 벗어난 탐색이라는 오류 메세지가 출력되게 된다.
리스트는 아이템을 삭제하면 뒤에 있는 아이템들이 당겨지면서 칸을 채운다고 생각면된다. 즉, 한 칸 당겨졌기 때문에 item[1]에서 오류가 나는 것이다.
.Count
true라면 로직이 실행된다.
if(true) {
로직
}
변수에 따라 로직이 실행된다.
switch (변수)
{
case 값1:
break;
case 값2:
break;
case 값3:
break;
default:
break;
}
마지막에 있는 default는 모든 케이스가 실행된 후에 실행되게 된다.
조건이 True라면 로직이 계속 반복하는 형태.
while(조건)
{
로직
}
조건식이 참인동안 괄호 안의 문장들을 반복하다 거짓이 되면 반복문을 벗어남.
for (연산될 변수 ; 조건 ; 연산)
{
로직
}
이때, 괄호안의 변수를 연산하며 로직을 반복실행하는 역할을 한다.
for의 그룹형변수 탐색 특화.
foreach (string monster in monsters)
{
Debug.Log("이 맵에 있는 몬스터 : " + monster);
}
이런 식으로 작성하게 되면 이미 위에서 선언한 배열에 있는 몬스터들을 순회하며 출력하게 된다.
기능을 편리하게 사용하도록 구성된 영역
함수이름 앞에는 그 함수가 반환하는 자료형을 적어주고 괄호 안에는 이 함수가 받을 변수를 적어준다.
int Heal(int health)
{
로직
return;
}
return : 함수가 값을 반환할 때 사용.
-> 함수 앞에 반환하는 타입이 있다면 return은 꼭 적어주어야 함.
함수 선언 시 함수가 받아들일 값
파라미터는 함수를 선언할 때 함수가 받아들이는 값을 정의하는 변수라고 할 수 있고, 함수가 호출될 때 필요한 값을 받아들이는 매개체, 함수나 메서드를 정의할 때 사용되는 변수의 이름이라고도 할 수 있다.
반환 데이터가 없는 함수 타입.
함수 안에서 선언된 변수.
함수 바깥에 선언된 변수.
하나에 사물(오브젝트)과 대응하는 로직
클래스의 구성
public class Actor
{
int id;
string name;
string title;
string weapon;
float strength;
int level;
string Talk()
{
return "대화를 걸었습니다.";
}
string HasWeapon();
{
return weapon;
}
void LevelUp()
{
LevelUp = level + 1
}
}
이렇게 구성한 클래스를
Actor player = new Actor();
위와 같이 하나의 변수로 만들어 주는 것을 인스턴스라고 한다.
정의된 클래스를 변수 초기화로 실체화.
그러나 이렇게 클래스를 만들어도 그 안의 데이터에 접근을 할 수 없는데 그 이유는 접근자가 private로 되어있기 때문이다.
public class Actor
{
public int id;
public string name;
public string title;
public string weapon;
public float strength;
public int level;
string Talk()
{
return "대화를 걸었습니다.";
}
string HasWeapon();
{
return weapon;
}
void LevelUp()
{
LevelUp = level + 1
}
}
그렇기 때문에 클래스의 코드에서 선언된 변수에 위와 같이 public을 적어 준다면 외부 클래스에서도 그 데이터를 사용할 수 있게 된다.