1 minute read

🎮메소드 만들기

  • 메소드 : 의미가 있는 처리 블록으로 분해하고 이름을 붙인 구조
    • 인수, 리턴값, 함수 이름으로 구성
    • 예를 들면, 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(){
    
          }
      }