유니티 C# 프로그래밍 기초
[ Class 클래스 생성 ] & [ 상속 ]
[ Class 클래스 ]
하나의 사물(오브젝트)와 대응하는 로직
최상단 위쪽에 위치합니다
'class'는 클래스 선언에 사용하는 키워드 입니다
- 기본 선언 형식
[접근제어자] class [클래스 이름]{
}
[ 새로운 C# 스크립트 생성 ]
클래스 이름을 Actor로 해보겠습니다
public class Actor : MonoBehaviour
{
int id;
string name;
string title;
string weapon;
float strength;
int level;
string Talk()
{
return "대화를 걸었습니다";
}
string HasWeapon()
{
return weapon;
}
void LevelUp()
{
level = level + 1;
}
}
기존에 있었던 box_01 클래스 void Start 내부에서 Actor 클래스를 사용해보겠습니다
Actor 클래스를 box_01 클래스에서 하나의 변수로 만들었습니다.
이것을 " 인스턴스화 " 라고 합니다.
- 인스턴스 : 정의된 클래스를 변수 초기화로 실체화함
- public : 외부 클래스에 공개로 설정하는 접근자
Actor 클래스는 public 접근자를 가지고 있어서 어디에서나 변수로 사용할 수 있습니다
player .
-> 점을 찍었을 때 Actor 클래스에서 만들었던 변수가 나와야하는데 나오지 않습니다
Actor 클래스를 확인해보겠습니다
보이지 않지만 각각 변수 앞에 private 접근자가 생략되어 있습니다. 왼쪽과 오른쪽은 같은 로직입니다.
- private : 외부클래스에 비공개로 설정하는 접근자
즉, 다른 클래스에서 player 멤버 변수에 접근하기 위해서 public을 변수 앞에 모두 써줍니다.
Actor 클래스의 변수들을 모두 오픈해주고, 다시 box_01 클래스에서 선언해보도록 하겠습니다
Actor 클래스에 있는 멤버 변수를 가지고 와서 출력하도록 했습니다
.
.
.
.
결과
Actor 클래스를 만들어보았습니다. 여기서 Actor는 용사일 수도, 몬스터인 슬라임, 악마, 사막뱀일 수도 있습니다.
그럼 이제 Actor클래스를 가지고 또 다른 클래스를 만들 수 있는데,
이것을 " 상속 "이라고 합니다.
[ 클래스 상속 하기 ]
Player이름을 가진 클래스를 새로 만들겠습니다
Monobehaviour 자리에 Actor를 넣어주고 로직을 작성합니다
Player 클래스는 여기까지 작성하고, box_01 클래스로 돌아가 수정해보겠습니다
box_01 클래스의 'Actor'를 모두 'Player'로 수정합니다
빌드하면 아무 오류가 나지 않습니다 !
.
.
.
결과
즉, Actor 클래스 안에 있는 Player 변수, 함수를 Player 클래스가 그대로 물려받아서 사용할 수 있습니다.
여기서 부모클래스는 Actor 클래스, 자식클래스는 Player 클래스 입니다. 상속 관계를 이루고 있습니다.
** 자식 클래스는 부모 클래스에 있는 모든 멤버 변수, 함수를 사용할 수 있으면서 자신의 새로운 멤버 변수와 함수를 사용할 수 있습니다
public class test : Monobehaviour
{
}
C# 스크립트를 생성하면 자동으로 붙는 'Monobehaviour'은 유니티 게임 오브젝트 클래스로,
유니티에서 사용할 모든 로직이 담겨있습니다.
'유니티' 카테고리의 다른 글
유니티 오브젝트 움직이기 - Input / GetKey / GetButton / Vector3 / GetAxis (0) | 2022.04.09 |
---|---|
유니티 이벤트 함수의 실행 순서 (0) | 2022.04.06 |
유니티 C# 프로그래밍 기초 - 함수 새로 선언하기 (0) | 2022.04.05 |
유니티 C# 프로그래밍 기초 - 반복문 / while / for / foreach (0) | 2022.03.30 |
유니티 C# 프로그래밍 기초 - 조건문 if / else if /switch (0) | 2022.03.28 |