멤버변수와 메소드로 구성되어있으며,
캐릭터가 할 수 있는 행동들을 의미한다(맞는다, 힐한다, 살아있는가, 먹는다 등)
❓Class 멤버
클래스에서 데이터와 동작을 나타낸다.
생성자, 소멸자, 상수, 필드, 메서드, 속성(프로퍼티),,,,등등으로 구성된다.
사용방법
class 클래스 이름
{
// 데이터와 메소드
}
💻 예시 코드
// Cat의 청사진 //
class Cat
{
// 속성 = 클래스의 변수 = 필드(Field)
public string Name;
public string Color;
// 기능 = 메소드
public void Meow()
{
Console.WriteLine("{0} : 야옹", Name);
}
}
❓객체
클래스는 객체를 구현하기 위한 설계도로, new 연산자와 생성자를 이용해 객체를 생성한다.
객체의 멤버에 접근할때는 .연산자를 사용한다.
new 연산자 : 생성자를 호출해서 객체를 생성하는데 사용하는 연산자
public class Test : MonoBehaviour
{
void Start()
{
Character charles = new Character("철수", 10); //객체 생성
charles.Hit(15); //객체의 멤버(메서드)에 접근
Debug.Log(charles.IsAlive());
}
}
public class Character
{
//멤버 변수
public string Name;
public int Hp;
public Character(string name, int hp) //매개변수를 포함한 생성자
{
Name = name;
Hp = hp;
}
public void Hit(int damage) //메서드
{
Hp -= damage;
}
public bool IsAlive()
{
return Hp > 0;
}
}
> 🖨 출력 결과
❓생성자
클래스의 이름과 동일한 이름을 가지며, 객체를 생성하는 역할로 객체를 인스턴스화할 때 호출되는 메서드로 반환타입을 갖지 않는다.
어떤 클래스가 만들어질때 처음 불려지는 것
public Character(string name, int hp) //생성자
{
Name = name;
Hp = hp;
}
제일 왼쪽에 Food라는 생성자가 존재하지만 생략된 것
즉, 기본 생성자는 생략되어도 작동한다.
아래 사진의 생성자가 있기 때문에 기본 생성자를 불러왔을때 오류가 생김
기본 생성자 public Charater(){}를 만들어주면 오류가 없어진다
하나 이상의 변수들을 묶어서 그룹으로 만드는 자료형
데이터와 관련 기능을 캡슐화할 수 있는 값 형식이다.
클래스와 거의 동일한 구조이지만 상속이 불가능하다는 차이가 있다.
struct HumanData
{
public string name;
public float weight;
public float height;
public float footSize;
}
void Start()
{
HumanData charles = new HumanData();
charles.name = "철수";
charles.weight = 100f;
charles.height = 180f;
charles.footSize = 280f;
Debug.Log(charles); //Struct1+HumanData 출력됨
}
위 코드의 결과는 아래와 같다.
>🖨 charles.name을 출력했을때 출력 결과