리터럴(Literal)
- 출처 : https://ko.wikipedia.org/wiki/%EB%A6%AC%ED%84%B0%EB%9F%B4
- 컴퓨터 과학 분야에서 리터럴(literal)이란 소스 코드의 고정된 값을 나타내는 표기법
- 정수, 부동소수점 숫자, 문자열, 불린(boolean)등 기본적인 값
- 정수형 : sbyte, byte, short, ushort, int, uint, long, ulong, decimal(10진수)
- 문자형 : char, string
- 실수형 : float, double
- 불린형 : boolean
- 값 그 자체
1 //정수(integer)
1.5f //실수(float)
"글자" //문자열(string)
true //불린(boolean)
false // 불린(boolean)
객체(Object)
- 사물, 물체
- 일종의 리터럴(literal)의 집합이라고 보아도 무방
사람 a = new 사람(); //'a'라는 사람이 있습니다.
a.키 = 170; //키가 170입니다.
a.몸무게 = 60; //몸무게가 60입니다.
a.나이 = 20; //나이가 20입니다.
a.성별 = "남"; //성별이 남자 입니다.
a.학생 = true; //학생이 맞습니다(참, true)
객체형 데이터(Object data type)
- 리터럴(literal)이 아닌 거의 대부분의 데이터
- 값 자체가 아닌 객체(object)로서 새로 만들때 생성자(new)등이 필요
- 변수나 상수는 값 자체(리터럴, literal)가 아닌 객체를 참조하는 주소를 보유하게 됨
new 사람();
new Animation();
new Animator();
new GameObject();
참조(Reference)
- https://ko.wikipedia.org/wiki/%EC%B0%B8%EA%B3%A0
- 한 객체가 다른 객체와의 연결 수단으로 작용하는 객체 간의 관계
- 리터럴이 아닌 객체는 그 자체가 아닌 객체가 있는 주소(address)를 참조(reference)함
- 참조를 가져오는 방법에는 여러가지가 있음
사람 a = new 사람();
//'a'라는 사람을 담을 수 있는 변수에 새로 '사람'을 만들어 그의 주소를 참조
반 디미디_A반 = 대한민국.경기도.의왕시.계원예술대학교.디지털미디어디자인과.A반;
//'디미디_A반' 이라는 반을 담을 수 있는 변수에 '계원예술대학교.디지털미디어디자인과.A반'의 주소를 참조
- 값 그 자체가 아닌 객체는 그 자체를 저장할수 없음
참조를 가져오는 방법
- public 변수를 생성하여 객체를 inspector에 직접 드래그 드롭으로 지정
- GameObject.FindGameObjectsWithTag(“태그명”) : 해당 태그명을 가지고 있는 모든 오브젝트를 찾음. GameObject[] 형식
- GameObject.FindWithTag(“태그명”) : 해당 태그명을 가지고 있는 오브젝트 1개
- GameObject.Find(“오브젝트명”) : 해당 오브젝트 이름을 가지고 있는 오브젝트 1개
필드(Field)
- 클래스 또는 구조체에서 직접 선언되는 모든 형식의 값이 저장되는곳
- 필드는 상수와 변수로 나눌 수 있다.
상수(Constant)
- 출처: https://ko.wikipedia.org/wiki/%EC%83%81%EC%88%98
- 수식에서 변하지 않는 값. 변하는 값인 변수(variable)와 반대개념
- c# script에서의 상수는 const로 정의함
const int a = 10;
//integer형 상수 a(상수의 이름)는 10 입니다.
const 사람 b = new 사람();
//사람형 상수 b(상수의 이름)는 '사람'이라는 객체(object)의 참조(reference)를 가지고 있습니다.
const Animation c = new Animation();
//Animation형 상수 c(상수의 이름)는 'Animation'이라는 객체(object)의 참조(reference)를 가지고 있습니다.
변수(Variable)
- 변하는 값. 변하지 않는값인 상수(constant)와 반대개념
int a = 10;
//integer형 변수 a(변수의 이름)는 10 입니다.
a = 20;
//a는 20으로 바뀌었습니다. (더이상 10이 아님)
정리
- 값은 리터럴(literal)과 오브젝트(Object)로 크게 나눌 수 있다
- 필드(Field)는 값을 저장하는 곳으로 리터럴이나 오브젝트의 참조(reference)를 저장한다
- 필드는 변하지 않는 상수(constant)와 변하는 변수(variable)로 크게 나눌 수 있다