총정리 (용어정리)
과제를 하려니 지금까지 너무 대충 공부를 해왔다는게 느껴져 다시 기본부터 복습하기로 했다
Hierarchy : Scene뷰에 배치한 오브젝트 이름을 목록으로 표시
Project : 게임에서 사용하는 리소스를 관리
Inspector : Scene 뷰에서 선택한 오브젝트의 상세정보
<메서드>
메서드 : 길어진 스크립트를 효과적으로 관리하기 위해 의미가 있는 처리 블록으로 분해하고 이름을 붙인 각각의 처리
→ 인수 : 메서드로 건네는 값
→ 반환값 : 메서드에서 돌려받는 값
인수는 여러개가 들어갈수 있으나 반환값은 무조건 1개이다
인수가 없을때는 int Add()
반환값이 없을때는 void Add(int a, int b)
int Add(int a, int b)
{
int c = a+b;
return c;
}
[반환 데이터형] [메서드명] ([인수1], [인수2])
{
return 반환값;
}
<클래스>
메서드 : 처리를 모아둔것.
클래스 : 메서드와 변수를 모아둔것. 관계가 있는 변수와 메서드를 하나로 합칠수 있어 스크립트 관리가 용이
class 클래스명
{
멤버 변수 선언;
멤버 메서드 구현;
}
작성한 클래스는 int나 string 등 데이터형으로 사용할 수 있다. 즉 Player 클래스를 만들면 Player형 사용가능
Player myplayer를 선언시 Player형 myplayer라는 변수를 만들수 있다는 뜻
이 myplayer 변수에는 플레이어의 실체를 대입하는데 이 실체를 인스턴스라고 한다
myplayer 변수가 가진 멤버 메서드나 멤버 변수를 사용하려면 myplayer.멤버 메서드명(변수명)을 사용
OO.xx = OO 클래스가 갖는 xx 메서드(또는 변수)를 사용한다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
class Player // 클래스 Player
{
private int hp = 100;
private int power = 50;
public void Attack() // 클래스 Player의 메서드 Attack
{
Debug.Log(this.power + "만큼 데미지를 입혔다");
}
public void Damage() // 클래스 Player의 메서드 Damage
{
Debug.Log(this.power + "만큼 데미지를 입었다");
}
}
public class NewBehaviourScript : MonoBehaviour
{
void Start()
{
Player myplayer = new Player();
// Player 클래스 사용을 위해 new 키워드로 인스턴스 제작 후 myplayer 변수안에 대입
myplayer.Attack();
변수명.멤버 메서드명()으로 호출
myplayer.Damage();
}
}
접근 수식자 : Public, Private등등... OO.xx라고 썼을때 다른 클래스에서 멤버로 접근 가능한지의 여부
Public => 다른 클래스에서 호출 가능
Private => 다른 클래스에서 호출 불가능
this 키워드 : 자신의 인스턴스를 카리키는 키워드
만약 this를 붙이지 않았는데 Attack 메서드에서 power라는 이름이 같은 변수를 선언한다면 그 값이 우선으로 쓰인다