상수는 영어로 constant로 const 라는 키워드로 변수를 설정할 수 있습니다.
실습을 위해 Player 라는 새로운 스크립트를 추가해 보겠습니다.
그러면 아래와 같은 스크립트가 자동으로 생성됩니다.
유니티에서 자동으로 작성해 주는 이것을 템플릿 코드라고도 합니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
우리는 Start() 와 Update() 메서드는 삭제해 주도록 하겠습니다.
지금은 필요없는 메서드이기 때문입니다.
여기에 변수를 두 개 생성해 봅니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
}
현재 체력과 체력 maximum 이렇게 두 개의 변수가 있습니다.
현재의 체력은 변경이 될 수 있는 반면에, 체력의 maximum은 변경될 수 없습니다. (물론 RPG 게임에서 레벨이 오르면 체력 max도 오르지만 이런 경우까지는 아직 생각하지 않습니다.)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour {
public int currentHP; // 현재 체력
public int maxHP; // 체력 max
}
변경될 수 없는 항상 동일한 값을 유지하고 있어야 하는 것이 상수입니다.
const 라는 키워드를 int 자료형 앞에 붙이고 다른 값을 할당하려고 하면 컴파일 에러가 발생합니다.
아래 코드와 같이요.
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour {
public int currentHP = 70; // 현재 체력
public const int maxHP = 100; // 체력 max
private void Start() {
maxHP = 110;
}
}
원래는 100으로 초기화가 되어 있었는데 이를 Start() 메서드에서 110으로 변경해 주었더니 에러가 발생합니다.
이렇듯 상수로 선언된 변수는 초기화를 꼭 먼저 해주어야 하고, 값을 변경할 수 없도록 제한을 둘 수 있습니다.
const와 유사한 기능을 하는 readonly 라는 키워드도 있습니다만, 지금은 readonly라는 키워드로도 상수 설정할 수 있다 정도만 알아두면 되겠습니다.
'SideProjects > [집필] 실전 유니티 C#' 카테고리의 다른 글
[실전 유니티 C#] if 문으로 조건을 만들다 (0) | 2022.05.01 |
---|---|
[실전 유니티 C#] 문자열 다루기 (0) | 2022.05.01 |
[실전 유니티 C#] 데이터 타입 (0) | 2022.04.23 |
[실전 유니티 C#] 들여쓰기 (0) | 2022.04.13 |
[실전 유니티 C#] 변수 (variable) (0) | 2022.04.03 |