protected EnemyBase CreateEnemy(EnemyParams @params) { GameObject prefabToInstantiate = enemyPrefab.FirstOrDefault(_P => _P.GetComponent <EnemyBase>().Type == @params.enemyType); GameObject enemy = Instantiate(prefabToInstantiate, GameSceneManager.Instance.GameSceneRoot); enemy.GetComponent <IEnemy>().Instantiate(@params.side, @params.speed); return(enemy.GetComponent <IEnemy>() as EnemyBase); }
void Start() { this.enemy = GetComponent <EnemyParams>(); this.player = GetComponent <PlayerParams>(); this.enemyCurrentHP = this.enemy.hp; this.playerCurrentHP = this.player.hp; this.enemyObject = GameObject.Find("Enemy"); this.enemyObject.GetComponent <SpriteRenderer>().sprite = this.enemy.CharacterSprite; this.battlelog = GameObject.Find("BattleLog"); this.battleText = GetComponent <BattleText>(); this.activatedActionList = new bool[this.enemy.routineList.Length]; this.SetBattleLog(this.battleText.BattleStart); }
void OnTriggerEnter(Collider other) { Debug.Log (other.gameObject.name); enemyParams = other.gameObject.GetComponent<EnemyParams> (); if (enemyParams !=null) { int i = enemyParams.priority; enemyGo = enemyParams.gameObject; //enemyArray. [enemyArray.GetLength(0) + i ] = enemyGo; if(enemyListA[i] != null) { enemyListA.Insert(i,enemyGo); } } }
private void ScanEnemies() { Enemies myTarget = (Enemies)target; // find all Enemies string path = "Assets/Prefabs/ForPool/Enemies"; var guids2 = AssetDatabase.FindAssets("t:gameobject", new string[] { path }); myTarget.EnemiesDefaultParams = new List <EnemyParams>(); foreach (var guid in guids2) { GameObject enemyObject = AssetDatabase.LoadAssetAtPath <GameObject>(AssetDatabase.GUIDToAssetPath(guid)); string enemyName = enemyObject.name; //enemyObject = CreateObjectTemporarly(enemyObject); Enemy enemy = enemyObject.GetComponent <Enemy>(); EnemyParams enemyParams = new EnemyParams(); enemyParams.Init(enemyName, enemy); myTarget.EnemiesDefaultParams.Add(enemyParams); } EditorUtility.SetDirty(myTarget); }
private void Update() { if (!_spawn) { return; } //Update Timers _spawnTimer += Time.deltaTime; _timeFromStart += Time.deltaTime; //Update complexity float t = Mathf.Clamp01(_timeFromStart / timeToHighComplexity); _enemySpeed = Mathf.Lerp(startEnemySpeed, hightestEnemySpeed, t); if (_spawnTimer >= spawnTimestep) { EnemyParams enemyParams = new EnemyParams { speed = _enemySpeed }; if (UnityEngine.Random.value > 0.7f) { enemyParams.enemyType = EnemyType.Shit; } else { enemyParams.enemyType = EnemyType.Puzzle; } enemyParams.side = (Side)Mathf.RoundToInt(UnityEngine.Random.value * 3); CreateEnemy(enemyParams); _spawnTimer = 0; } }
public override void OnInspectorGUI() { serializedObject.Update(); setting = (EnemyParams)target; EditorGUILayout.PropertyField(this.actorName); EditorGUILayout.PropertyField(this.characterSprite, spriteLabel); EditorGUILayout.IntSlider(this.hp, MinHp, MaxHp); EditorGUILayout.IntSlider(this.atk, MinParam, MaxParam); EditorGUILayout.IntSlider(this.dfc, MinParam, MaxParam); int totalparam = setting.hp + setting.atk + setting.dfc; EditorGUILayout.LabelField("総合戦闘力", totalparam.ToString()); if (setting.needRefresh) { reorderableList.index = setting.routineIndex; setting.needRefresh = false; } reorderableList.DoLayoutList(); serializedObject.ApplyModifiedProperties(); }
public void SpawnCoin(EnemyParams enemyParams) => Instantiate(_coinPrefab, enemyParams.Position, Quaternion.identity, _coinsContainer);
public void InvokeCreateEnemy(EnemyParams @params) { Debug.Log("CreateEnemy Invoked"); CreateEnemyEvent?.Invoke(@params); }
void CreateEnemyEvent_Handler(EnemyParams @params) { CreateEnemy(@params); }
// Start is called before the first frame update void Start() { StartTime = 0f; StageSonud = GetComponent <AudioSource>(); StageSonud.Play(); stage = GetComponent <Stage>(); Stage = 1; stage.StageText.text = "Stage : " + Stage.ToString(); stage.StageNum = Stage; stage.ScoreText.text = "Score : " + Score.ToString(); stage.ScoreNum = Score; Enemy = EnemyPre.GetComponent <PlayerFire>(); EnemyEffect = EnemyPre.GetComponent <ParticleSystem>(); ReSpawnSize = Stage;//스테이지숫자만큼 적생성 enemyParams = EnemyPre.GetComponent <EnemyParams>(); //생성되는 위치값 리스트에 저장해서 프리팹 만들떄 사용하자 for (int i = 0; i < ReSpawnSize; i++) { //SpawnStart[i] = new Vector3(Random.Range(-9+i, i-8), 0.5f, Random.Range(13, 15)); SpawnStart.Add(new Vector3(Random.Range(-9 + i, i - 8), 0.5f, Random.Range(13, 15))); ETransform.Add(SpawnStart[i]); } for (int i = 0; i < SpawnStart.Count; i++) { SpawnEnd.Add(new Vector3(SpawnStart[i].x, SpawnStart[i].y, Random.Range(7, 11))); } for (int i = 0; i < Stage; i++) { //GameObject instance = Instantiate(EnemyPre, ETransform[i], Quaternion.identity); Enemy = ObjectPool.Instance.SpawnFromPool("Enemy", ETransform[i], Quaternion.identity).GetComponent <PlayerFire>(); Enemy.enabled = false; EnemyEffect = ObjectPool.Instance.SpawnFromPool("Effect", ETransform[i], Quaternion.identity).GetComponent <ParticleSystem>(); EnemyEffect.Stop(); EnemyDieList.Add(EnemyEffect); EnemyList.Add(Enemy); } //게임이 시작하면 이동하게 IsStarted = true; ReStart = false; //시작하면 프리팹을 만들고 프리팹만든 위치를 적list에 저장하기 }