protected Entity Spawn(string className, params object[] param) { var initParam = new object[1 + param.Length]; initParam[0] = this; param.CopyTo(initParam, 1); var entity = (Entity)Activator.CreateInstance(Type.GetType(className), initParam); ETypes entType = (ETypes)Enum.Parse(typeof(ETypes), entity.GetType().Name); switch (entType) { case ETypes.Player: entity.Handler = SLocator.CharHandler; entity.Sprite = SLocator.PLManager.TLoad(SLocator.PLManager.TList[TTypes.PLAYER]); break; case ETypes.Enemy: entity.Handler = SLocator.AIHandler; entity.Sprite = SLocator.PLManager.TLoad(SLocator.PLManager.TList[TTypes.ENEMY]); break; case ETypes.Boss: entity.Sprite = SLocator.PLManager.TLoad(SLocator.PLManager.TList[TTypes.BOSS]); break; case ETypes.Magic: entity.Sprite = SLocator.PLManager.TLoad(SLocator.PLManager.TList[TTypes.MAGIC]); break; default: break; } entity.GState = WGState; Entities.Add(entity); return(entity); }
public void SetType(ETypes type) { enemy.enemyType = type; spriteRenderer.sprite = gbase.dictSprites["enemy_sprites_" + type2Id[enemyType].ToString()]; anim.runtimeAnimatorController = (RuntimeAnimatorController)Resources.Load(string.Format("Animations/Enemies/{0}/{1}_controller", enemyType.ToString(), enemyType.ToString().ToLower())); }