inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

TextRPG2 몬스터 생성

조상 클래스 호출에 관한 질문입니다.

294

mir8725

작성한 질문수 5

0

영상의 코드에서 Creature의 Get_OnDamage(int damage) 메서드를 수정하여,

public void On_Damage(int damage)
        {
            _hp -= damage;
            Console.WriteLine($"{_type}(은)는 {damage}의 피해를 입었습니다!");
            Console.ReadLine();
            Console.Clear();

            if (_hp <= 0)
                _hp = 0;
        }

이런 식으로 "기사(은)는 ~~", "마법사(은)는 ~~"이라고 출력하고 싶습니다.
하지만 그러려면 Monster인지 Player인지가 아니라,
한단계 더 밑인 클래스 타입을 불러와야 하는데...
조상 클래스에서 자식의 자식 필드를 쓴다던가 불러올 수 있나요?

C#

답변 5

1

Rookiss

Monster Player 외에 다른 애들도 생기기 시작하면 (ex. NPC)
확신할 수 없게 되겠지만, 둘 밖에 없다면 안전합니다.

1

Rookiss

여러 가지 방법이 있는데,
1) 희망하는 클래스로 캐스팅을 해보고 체크를 하는 방법 (다소 느림)
  -> ex) as Knight, is Knight 등
2) PlayerType 등으로 타입 정보를 Player 클래스에 넣는 방법
  -> Player 캐스팅 후, PlayerType을 체크해서 기사/법사/궁수 등 여부 확인
이런 식으로 구현하시면 되겠습니다.

0

mir8725

답변 감사합니다!(_ _)

0

mir8725

한가지 더 궁금증이 생겼습니다.
Creature는 자식이 Monster 아니면 Player인데,
만약 Player player = Creature as Player해서
player == null이라면, 이 클래스는 Monster라고 확신할 수 있을까요?
아니면 예기치 못한 오류로 null이 될 수도 있나요?

0

mir8725

2번째 방법으로 해결했습니다 감사합니다!(_ _)

Generic에 대한 질문 있습니다.

0

97

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

203

2

다형성 캐시 문제

0

113

3

.

0

71

1

프로퍼티 강의 질문 있습니다.

0

79

1

이후 커리 질문

0

86

1

static

0

91

2

강의에는 새로운 클래스 파일을 생성하면...

0

72

1

생성자의 이름 선언

0

66

1

9:03 Divide(10 , 3) 부분 질문입니다

0

89

1

깃허브 관련 질문 있습니다.

0

239

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

249

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

306

2

Activator 질문있습니다

0

333

1

이넘 타임 선언 질문

0

349

1

Sort 오름차순, 내림차순

0

323

1

질문 있습니다.

0

250

1

팩토리얼 문제

0

271

1

Sort함수 질문있습니다.

0

266

1

다형성 함수 질문 있습니다.

0

221

1

질문이 있습니다.

0

229

1

섹션2 연습문제 질문입니다.

0

215

1

안녕하세요~서버에 대해 질문이 있습니다.

1

284

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

397

1