Esempio n. 1
0
        public override Entity CreateNewEntity(EntityConfig config)
        {
            BugConfig bugConfig = config as BugConfig;

            if (bugConfig == null)
            {
                throw new Exception($"{nameof(BugFactory)} was requested to factorise an Entity based on a invalid {nameof(EntityConfig)} type: {config.GetType()}.");
            }

            Bug targetBug = BugEntityPool.GetPoolObject();

            for (int i = 0; i < targetBug.transform.childCount; i++)
            {
                Destroy(targetBug.transform.GetChild(i).gameObject);
            }

            targetBug.Initialise(bugConfig);
            Instantiate(config.EntityView, targetBug.transform);

            return(targetBug);
        }