inflearn logo
강의

講義

知識共有

Unity で始めるゲーム開発: Part 3. シューティングゲーム開発

広告機能のためのInterface文法

인터페이스를 쓰는 근본적인 이유

499

Hyobin Kim

投稿した質問数 81

0

안녕하세요 강사님

강의를 듣다가 의문이 생겼습니다

 

약간 혹은 상당히 일반적인 질문이 될 것 같은데요

 

왜 인터페이스를 써서 Complete()이라는 함수를 PlayerScript에서 구현을 해야 하는 건가요?

강사님 설명을 듣고 이해는 됐는데 다른 한쪽으로는 그냥 저 Complete()라는 함수를 바로  PlayerScript 클래스에 구현을 해주면 안되는건가요?

아니면 기능별로 클래스를 나눠야 한다는 OOP의 기본 개념 때문에 쓰는 건가요?

C# unity

回答 1

0

UDevApp

플레이어 스크립트에서 인터페이스 상속을 통해서 구현이 되어 있습니다. 

그런데 어디선가 실행해주는 것을 확인해보기 위해서 IAdManager 라는 것을 직접 작성해서 확인해본 것입니다. 플레이어 안에 IAdManager 의 기능을 넣고 설명하면 더 혼돈이 올수 있기 때문에 이렇게 만든 것입니다. 

인터페이스가 실행되는 것은 구조가 딜리게이트와 같습니다만 문법이 다릅니다. 

어딘가에서 실행해주는 기능을 구현하였을때 사실 이 강의에서 볼수 있는 IAdManager 라는 클래스는 외부에 노출되어 있지 않게 됩니다. 

저희 광고도 마찬가지로 구현이 되어 있는데 저희가 알수있는것은 인터페이스의 이름과 그것이 지원하는 함수입니다. 

다음강의를 보시면 이해하기 쉬울텐데요. 

어딘가에서 실행해주는 기능이 있는데  그것의 소스코드는 알리고 싶지 않고 게임개발자에게는 완료가 된 상황(광고가 끝난상황) 취소가 된 상황만을 알리고 싶습니다. 

그렇기 때문에 저희는 IUnityAdsListener 라는 인터페이스를 상속받아서 사용합니다. 인터페이스 상속과 실제상속이 완전히 다른의미입니다. 그리고 유니티에서는 IUnityAdsListener 라는 인터페이스만 미리 만들어놓으면 됩니다. 실제 함수가 실행되는 것은 광고기능의 어딘가에 있겠죠. 그것조차 게임개발자는 알필요가 없다는 것입니다.   

인터페이스의 뜻이 접속이라는 뜻이죠. 

저희의 클래스와 광고클래스를 서로 접속 시킨다는 의미로 이해하시면 더 쉬울 것입니다. 

감사합니다. 

 

 

 

 

 

 

 

 

 

캐릭터 변경에 관해

0

220

1

Asteroid 생성에 관련해서

0

182

1

Part4 유니티로 세가지의 게임만들기 강의

0

206

1

Clamp 사용 시 앞서 설정한 ViewportToWorldPoint의 min, max를 사용하지 않고 새로 설정하는 이유가 있을까요

0

268

1

섹션8 슈팅게임 프로토타입 만들기3(적과 발사체)

0

261

1

캐릭터 고정데이터 로딩 강의

0

319

1

Destroy 함수 질문

0

407

1

GetComponent 강의 질문

0

339

1

transform.position과 transform.Translate 의 차이가 뭔가요??

0

1906

1

강의도중 질문이 있습니다

0

485

1

강의자료

0

279

0

117강 구조체를 정의하여 ShipData 구성

0

218

0

굳이 InitTime을 만들어서 호출 하는 이유가 있나요?

0

287

0

GameManager 의 Start()가 스페이스 누를때마다 반복실행됩니다.

0

409

1

Collider인 other.gameObject;

0

423

0

Generic에 대한 질문이 있습니다.

0

257

0

gameObject.setActive(false);

0

575

1

애플 앱스토어

0

240

0

비주얼스튜디오 오류

0

2140

1

part4강의

0

307

1

발사체 스피드

0

290

1

4분 44초 제가 이해한게 맞는지 궁금합니다

0

260

1

2분 44초 왜 void 함수를 써야하나욤..?

0

350

1

해당 부분 업데이트

0

255

1