コード例 #1
0
        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);
        }
コード例 #2
0
 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);
 }
コード例 #3
0
	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);	

				}
		}
		}
コード例 #4
0
    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);
    }
コード例 #5
0
        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;
            }
        }
コード例 #6
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();
    }
コード例 #7
0
 public void SpawnCoin(EnemyParams enemyParams) =>
 Instantiate(_coinPrefab, enemyParams.Position, Quaternion.identity, _coinsContainer);
コード例 #8
0
 public void InvokeCreateEnemy(EnemyParams @params)
 {
     Debug.Log("CreateEnemy Invoked");
     CreateEnemyEvent?.Invoke(@params);
 }
コード例 #9
0
 void CreateEnemyEvent_Handler(EnemyParams @params)
 {
     CreateEnemy(@params);
 }
コード例 #10
0
ファイル: EnemySpawn.cs プロジェクト: chol9630/shootingGame
    // 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에 저장하기
    }