2
Unity에서 첫 번째 게임을 개발 중이고 Abstract Factory
패턴을 적용하여 게임의 괴물을 만들려고합니다. 나는 모든 몬스터가 구현해야 페스가 : 나는 구체적인 몬스터추상 팩토리를 구현하려고 할 때 객체 참조가 객체로 설정되지 않았습니다.
public class Monster2 : MonoBehaviour, IMonster
{
....
public Monster2()
{
speed = Random.Range(0.05f, 0.15f);
monster = (GameObject)Instantiate(Resources.Load("Monster2"));
float height = Random.Range(0, Screen.height);
Vector2 MonsterStartingPosition = new Vector2(Screen.width, height);
MonsterStartingPosition = Camera.main.ScreenToWorldPoint(MonsterStartingPosition);
monster.transform.position = MonsterStartingPosition;
}
....
}
에게이
interface IMonster
{
void setSpeed(float s);
float getSpeed();
void SetMonsterPosition(Vector2 pos);
Vector2 GetMonsterPosition();
void DestroyMonster();
void MoveMonster();
}
을 그리고 나는 있도록 새로운 몬스터 개체를 반환하는 방법이있는 공장 클래스를 만들려면 나중에 콘크리트 Monster 객체를 임의로 만들 수 있습니다.
class MonsterFactory
{
public IMonster getMonster()
{
return new Monster2();
}
}
그리고 나는이처럼 내 주에이 공장을 사용하는 것을 시도하고있다 : 나는 다음과 같은 쓴
private IMonster monster;
private MonsterFactory myMonsterFactory;
void Start() {
monster = myMonsterFactory.getMonster();
}
나는 다음과 같은 오류 NullReferenceException: Object reference not set to an instance of an object
모든 아이디어를 얻을 게임을 실행하려고 무엇을 내가 잘못하고있는거야? MonsterFactory
클래스
'myMonsterFactory'가 null의 호출 정적합니다? –
MonsterFactory 및 getMonster 메서드를 정적으로 선언해야합니다. –
@DavidBrabant David, 고맙습니다. –