








이 인터페이스를 상속받게 되는 제품이 있을 것인데, 해당 제품은 제품의 이름과 제품이 생산되었을 때 처음 해야 할일(초기화)에 대한 것들을 상속받는 클래스가 작성해야 한다.

IUnitProduct의 반환타입을 갖는 추상 메서드를 작성한다. 매개변수는 Vector3 타입이며, 이 변수를 통해서 제품 생성 위치를 받아온다.

unitName 은 Red Barbarian으로 짓고, Init 메서드가 실행 될 때 해당 제품의 이름을 unitName으로 변경하고, 해당 제품의 회전값을 설정한다.


UnitFactory 추상 클래스로부터 상속을 받으니, 구현해야 될 메서드를 작성한다. 구현해야 될 메서드는 제품을 생성하는 메서드 였었다.
따라서, Instantiate() 이용하여 제품을 생성하고, 해당 제품의 ProductBarbarianA 스크립트(컴포넌트)을 접근하여 Init () 호출한다.
마지막으로, 이 추상 메서드의 반환타입이 IUnitProduct 이므로, return newProduct;을 한다. newProduct 는 현재 IUnitProduct로부터 상속받고 있다.



FactorialBarbarianA 스크립트를 추가한다.


UnitFactory 클래스 배열 객체를 선언하고, 배열 객체의 0번째 인덱스를 UnitFactory 클래스의 객체로 저장한다.
저장한 객체를 통해 GetProudct(hitpoint)을 호출한다. hitpoint는 현재, GetTerrainHitPoint()을 통해 얻은 터레인의 위치 값이다.


