
프로그램은 클래스 단위로 관리됨
클래스명 = 스크립트
using System.Collections;
using Sytem.Collectons.Generic;
// 데이터를 저장하는 형을 제공
using UnityEngine;
// 유니티가 동작하는데 필요한 기능 제공
public class Test : MonoBehaviour
{
void Start() // 한 번만 실행
{
}
void Update() // 프레임마다 반복해서 실행
{
}
}
*프레임
-게임 화면은 영화/애니메이션과 같이 그림 한 컷을 플립북 방식으로 표시함
-FPS: 1초에 표시되는 매수
➡️ Update 메소드가 1초 동안 불리는 횟수
-영화는 1초에 24, 게임은 1초에 60프레임
-60FPS로 설정해도 사용자 입력이 달라지거나 시스템 부하 등이 달라지면 프레임 간 시간이 1/60초보다 빠르거나 느려질 수 있음
Start 메소드는 한 번 실행, Update 메소드는 프레임마다 반복해서 실행됨

float → float height = 160.5f;
// 소수 뒤에 f를 붙이면 float, 그렇지 않으면 double형

if, for문
*변수 범위



int[] points = new int[5];
points.length


start, update 함수와 별개로 써준다
-인수, 반환값




-메소드는 처리를 모아둔 것, 클래스는 메소드와 변수를 모아둔 것
-유니티로 게임을 만들려면 플레이어, 적, 무기, 아이템 등 물체마다 그 움직임을 정의하는 스크립트를 작성


-작성한 클래스는 데이터형으로 사용할 수 있다

myPlayer.멤버 변수명
myPlayer.멤버 메서드


클래스 객체 = new 클래스(); 만들어주고
객체.메소드();로 호출

*this 키워드
-자신의 인스턴스를 가리키는 키워드
-this 안붙여도 자기 클래스의 멤버 변수 사용 가능하지만, 동일 이름 로컬 변수 있을 경우, 로컬 변수값이 우선되는 오류 발생

-float형의 x, y, z 값 3개
-C#에는 이 값들을 하나로 합쳐 다룰 수 있는 Vector3 클래스가 내장
-2D 게임용에는 float형 x, y값을 갖는 Vector2 클래스가 있음

*Vector
-Vector3 클래스에는 x, y, z 멤버 변수가 있고 Vector2 클래스에는 x, y 멤버 변수가 있음
-x=3, y=5 → 오브젝트가 (3, 5) 위치에 배치



-startPos에서 endPos로 향하는 dir 벡터
벡터 거리 → magnitude 변수
float len = 벡터.magnitude;
*Vector 클래스 응용
-가속도, 힘, 이동 속도 같은 물리 수치로 사용 가능
ex) 플레이어의 이동 속도
Vector2 speed = new Vector2(2.0f, 0.0f)
speed를 플레이어 좌표에 매 프레임마다 더해 프레임마다 플레이어를 x축 방향으로 2씩 이동 가능
