0. 생성한 스크립트
- print : hello world 띄우기
- variable : 여러 자료형 변수 선언 및 출력 / 오브젝트 우측으로 이동시키기
- Bit : 비트연산 및 출력
1. 유니티 설정(레이아웃 저장, 오브젝트 생성 좌표 고정, 씬 빠르게 열기)
- 원하는 창 배치후 Window -> Layout -> Save Layout 클릭
- 레이아웃 설정을 다른 컴퓨터에도 사용하고 싶다면 Window -> Layout -> Save Layout to File 클릭
- 오브젝트 생성 좌표 고정하는 법 : Edit -> Preferences -> Scene View -> Create Objects at Origin 체크 => 오브젝트가 (0,0,0)으로 고정된다.
- 유니티 프로젝트 빠르게 여는법 : 프로젝트가 저장된 폴더 -> Assets -> Scenes -> 유니티 아이콘의 열고싶은 씬을 클릭한다.
2. 비주얼 스튜디오 설정(스크립트 생성 틀 고정하기)
- C드라이브 -> Program Files -> Unity -> HUB -> Editor -> 사용하는 에디터 폴더 -> Editor -> Data -> Resoureces -> ScriptTemplates -> 81-C# Script-NewBehaviourScript.cs
- 잘못 건드리면 수정하기 힘드니 백업을 해두고 저장하는게 좋다.
- start함수만 남기고 안보는 주석과 Update는 지운다.

3. 변수 자료형
3-1 정수형 변수
| 데이터 형식 | 크기 | 범위 |
| sbyte | 부호 있는 8비트 정수 (1byte) | -128 ~ 127 |
| byte | 부호 없는 8비트 정수 (1byte) | 0 ~ 255 |
| short | 부호 있는 16비트 정수 (2byte) | -32,768 ~ 32,767 |
| ushort | 부호 없는 16비트 정수 (2byte) | 0 ~ 65,535 |
| int | 부호 있는 32비트 정수 (4byte) | -2,147,483,648 ~ 2,147,483,647 |
| uint | 부호 없는 32비트 정수 (4byte) | 0 ~ 4,297,967,295 |
| long | 부호 있는 64비트 정수 (8byte) | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
| ulong | 부호 없는 64비트 정 (8byte) | 0 ~ 18,446,744,073,709,551,615 |
3-2 실수형 변수
| 데이터 형식 | 크기 | 범위 |
| float | 32비트 (4바이트) / 소수점 6자리까지 | -3.402823e38~3.402823e38 |
| double | 64비트 (8바이트) / 소수점 14자리까지 | -1.79769313486232e308~1.79769313486232e308 |
| decimal | 128비트 (16바이트) / 소수점 28자리까 | -79228162514264337593543950335~79228162514264337593543950335 |
3-3 문자형 변수
| 데이터 형식 | 크기 | 범위 |
| char | 16비트 (2바이트) 문자 | 문자 |
| string | 16비트 문자열 | 문자열 |
3-4 논리형 변수
| 데이터 형식 | 크기 | 범위 |
| bool | 8비트 (1바이트) | 참(true) 혹은 거짓(false) |
int a = 10;
int b = 20;
print("b = " + b);
print("a = " + a);
b = 30;
int c = a + b;
print("c = " + c);
4. 비트 정리
- bit -> 2에 1승
- 1 Byte -> 8 bit -> 2에 8승 -> 256
- 1024 Byte -> 1 KByte / 1024 KByte -> 1 MByte
5. 진수 정리
- 2진수 : 0과 1로 수를 표현한다. 10진수로 변환할 때 1 2 4처럼 2승으로 커진다. ex) 0000 0101 = 5
- 10진수를 2진수로 변환한다면 몫과 나머지를 계산해서 마지막에 나온 몫이 제일 왼쪽, 마지막에 나온 나머지가 제일 오른쪽으로 온다. ex) 175 = 101011111
- 8진수 : 0 ~ 7로 수를 표현한다. 10진수로 변환할 때 각 자리수에 8의 0승부터 곱한다. ex) 35 = 8의 1승 * 3 + 8의 0승 * 5 = 29
- 8진수도 2진수와 같이 변환한다.
- 16진수 : 0 ~ 9와 문자 A ~ F로 10 ~ 15를 표현한다. 10진수로 변환할 때 각 자리수에 16에 0승부터 곱한다.
- 16진수도 2진수와 같이 변환하지만 10은 A, 15는 F로 놓는다.
- 0X00이 있을때 0은 한칸에 4bit이고 8칸에 8bit = 1Byte => 1111 1111 = FF = 255이니 0 ~ 255까지 256개의 수가 표현된다.

6. 논리 / 비트 연산
int num = 6; //0000 0110
int num2 = 12; //0000 1100
int result = 0;
result = num & num2; //And 0000 0100
print("& = " + result);
result = num | num2; //OR 0000 1110
print("| = " + result);
result = num ^ num2; //XOR 0000 1010
print("^ = " + result);
result = ~num; //Inverse 값 반전
print("~ = " + result);
result = num << 2; //Left Shift
print("<< = " + result);
result = num >> 2; //Right Shift
print(">> = " + result);

7. 오브젝트 이동(Time.deltaTime)
- Time.deltaTime : 한 프레임 당 실행하는 시간 - float 형태로 반환 (단위 : 초)
- 넣는 이유 : 성능에 상관없이 실행시간당 격차를 없애기 위해 사용한다.
- 이동이나 회전 등 움직임에 있어서 시간의 영향을 받는 기능을 만들 때는 값에 deltaTime을 곱해서 흘러간 프레임 시간만큼만 가중치를 줌으로써 프로세서 속도의 영향에서 자유로워 지게 된다.
- 오브젝트를 이동시킨다면?
- 1. 스크립트를 넣을 오브젝트의 좌표를 가져온다.
- 2. 좌표에 이동시키는 힘을 넣어 새로운 좌표를 만든다.
- 3. 바뀐 좌표를 오브젝트에 넣는다.
public float speed = 0.1f; // 멤버 변수 (클래스 내부에 생성된 변수)
private void Update()
{
float x = transform.position.x; //오브젝트 트랜스폼 컴포넌트의 포지션 컴포넌트 = 위치의 x좌표를 가져다가 x 변수에 넣었다.
x = x + speed * Time.deltaTime; //Time.deltaTime = 이전 프레임과의 시간 변화량(이동, 회전 등 물리좌표를 움직일떄 반드시 넣는다.) / 수학에서 delta는 기울기를 의미한다. => 기울기는 변화량(y변화량 / x변화량)을 의미한다.
transform.position = new Vector3(x, 0, 0); //0.1값을 넣은 x를 좌표에 넣었다.
}