* 클래스를 사용하면 관계가 있는 변수와 메서드를 하나로 합칠 수 있다 : 스크립트 관리가 쉬워진다
class 클래스명
{
멤버 변수 선언;
멤버 메서드 구현;
}
* 인스턴스.......?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour //플레이어 클래스 선언
{
private int hp = 1200; // 플레이어의 HP와 공격력을 나타내는 멤버 변수 선언
private int power = 350;
public void Attack()
{
Debug.Log(this.power + " 데미지를 입혔다 ");
}
public void Damage(int damage)
{
this.hp -= damage;
Debug.Log(damage + " 데미지를 입었다");
}
}
public class Test : MonoBehaviour
{
void Start()
{
Player myPlayer = new Player(); // 위에서 만든 Player 클래스의 인스턴스를 만들어 사용. Player형의 myPlayer 변수를 선언. 그리고 실체인 인스턴스를작성해 대입
myPlayer.Attack(); // 인스턴스를 가진 Attack 메서드를 변수명.멤버 메서드명() 형태로 호출
myPlayer.Damage(30);
}
}
* 인스턴스를 만드려면 new 키워드 다음에 클래스명()을 쓴다
* 변수명.멤버 메서드명() 형태로 호출
# 접근 수식자
* public과 private 키워드는 접근 수식자 라고 한다
: 00.xx 라고 썼을 때 다른 클래스에서 멤버로 접근 가능한지 여부를 나타냄
* public이 붙어있는 멤버는 다른 클래스에서 호출가능
* private는 불가능
*pfotected: 같은 클래스와 해당 클래스의 서브클래스에서 접근가능
# this 키워드
* this 는 자신의 인스턴스를 가리키는 키워드
* this를 붙이지 않아도 자기 클래스의 멤버 변수 사용 가능.
* 객체 지향....ㅠ?
# 상속
* : MonoBehaviour 는 상속이라고 한다. 유니티가 준비한 Monobihaviour 클래스의 기능을 Test 클래스에 집어넣겠다고 선언하는 것
* MonoBehaviour 클래스는 게임 오브젝트를 구성하는 기본 기능을 멤버 변수와 메서드로 준비한 클래스
따라서 게임 오브젝트에 붙여 실행하는 스크립트는 MonoBehaviour 클래스를 상속해야 한다
'작업' 카테고리의 다른 글
유니티 Hub 모듈 설치 오류 문제 (0) | 2023.07.16 |
---|---|
유니티 공부 C# Vector 클래스 (0) | 2023.07.16 |
유니티 공부 C# 메서드 (0) | 2023.07.13 |
유니티 공부 C# 배열 (0) | 2023.07.13 |
유니티 공부 C# for문 (0) | 2023.07.12 |