728x90
몬스터 오브젝트 세 개를 두고 누르면 아이엠 그라운드 자기소개 하기
공통부분은 부모에게서 받은 그대로, 각 몬스터 특성 따라 오버라이딩하여 재정의
부모 추상 클래스 생성
abstact class Monster
{
public abstract string MakeSound();
public void Attack()
{
Debug.Log("공격");
}
public void Dead()
{
Debug.Log("으어억");
}
}
상속받는 자식 클래스들
class Ork : Monster
{
public override string MakeSound()
{
return "I'm Ork";
}
}
class Elf : Monster
{
public override string MakeSound()
{
return "I'm Elf";
}
}
class Devil : Monster
{
public override string MakeSound()
{
return "I'm Devil";
}
}
아니 이거 복붙도 아니고 그대로 쓰는데 왜 밀려있냐
아무튼 추상클래스를 상속받은 자식 클래스들은 반드시 override로 추상메서드를 재정의 해야한다
오브젝트 클릭시 자기소개하기
void Update()
{
if(Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit))
{
Debug.Log(hit.collider.name);
switch(hit.collider.name)
{
case "Ork":
makeSoundText.text = ork.MakeSound();
break;
case "Elf":
makeSoundText.text = elf.MakeSound();
break;
case "Devil":
makeSoundText.text = devil.MakeSound();
break;
default:
return;
}
}
}
}
Input.GetMouseButtonDown(0) -> 마우스 버튼 왼쪽 클릭하면
클릭한 마우스 포지션으로 ray를 쏘고
RaycastHit -> 그 ray에 닿은 오브젝트가 있다면 hit.collider.name을 로그로 출력
닿은 오브젝트의 이름이 Ork 또는 Elf 또는 Devil 이면 각각 텍스트에 자기소개 출력
결과
Dead와 Attack도 확인해보자
부모에게 받은 으어억과 공격이 잘 나오고있다
728x90
'Unity' 카테고리의 다른 글
[Unity] Navigation 지형굽기 (0) | 2023.06.13 |
---|---|
[Unity] Canvas에 오브젝트가 가려져서 안보인다 (0) | 2023.06.12 |
[Unity] Text 화질이 깨진다 (0) | 2023.06.09 |
[Unity] JsonUtility (0) | 2023.06.09 |
[Unity] FormatException: Input string was not in a correct format 문자열 정수/실수 형 변환 (1) | 2023.06.08 |