[Unity] Tutorial: 스크립트 작성하기 - 함수, 클래스 만들기, Vector 클래스 사용하기
🎮메소드 만들기
- 메소드 : 의미가 있는 처리 블록으로 분해하고 이름을 붙인 구조
- 인수, 리턴값, 함수 이름으로 구성
- 예를 들면,
int AddScore(int a, int b) return a+b;
🎮클래스 만들기
-
메소드와 변수 모아둔 것
-
작성한 클래스도 하나의 타입으로 사용할 수 있다. 만든 클래스의 변수가 객체(인스턴스).
class className{
멤버변수 선언;
멤버함수 선언;
}
접근제어자 : public, protected, private으로 제어
this
- 멤버변수와 지역변수의 이름이 같을 때, 지역변수가 우선되어 사용되기 때문에 this로 확실하게 구분해줌
- 객체 지향의 캡슐화와 다형성을 지원
Debug.Log
- 클래스 Debug의 객체 없이 Log함수를 사용할 수 있는 것은, Log가 static함수이기 때문이다.
🎮Vector 클래스 사용하기
-
3D 게임을 만들려면 공간에서 오브젝트를 어디에 둘지, 어느 쪽으로 옮길지, 어디로 힘을 보낼지 정해야 하므로 float형의 x, y, z 값 세 개를 쓴다
-
C#에는 Vector2 -> 2d용, Vector3 -> 3d용 클래스가 있다.
정확히는 구조체로, 클래스와 비교하면 기능은 제한되지만 클래스보다 빠르게 동작한다. -
예제
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test : MonoBehaviour{ // Start is called before the first frame update void Start(){ Vector2 pos = new Vector2(2.0f, 2.0f); // 벡터 만들면서 위치 초기화 pos.x += 3.0f; pos.y -= 1.0f; // 두 점 좌표의 거리도 구할 수 있다 Vector2 start = new Vector2(2.0f, 1.0f); Vector2 end = new Vector2(4.0f, 5.0f); Vector2 dir = end - start; // Vector2 클래스가 갖는 magnitude 멤버 변수를 이용해 벡터 길이도 구할 수 있다 float len = dir.magnitude; } // Update is called once per frame void Update(){ } }