예제 #1
0
    void OnTriggerEnter2D(Collider2D coll)
    {
        if (!coll.isTrigger)
        {
            switch (coll.tag)
            {
            case "Enemy_1":
                Enemy enemy = coll.GetComponent <Enemy>();
                if (enemy != null)
                {
                    enemy.ChangeColor();
                    enemy.TakeDamage(damage);
                    Destroy(gameObject);
                    Instantiate(Bullet_death, gameObject.transform.position, gameObject.transform.rotation);
                }
                break;

            case "Enemy_3":
                Enemy_3 enemy_3 = coll.GetComponent <Enemy_3>();
                if (enemy_3 != null)
                {
                    enemy_3.ChangeColor();
                    enemy_3.TakeDamage(damage);
                    Destroy(gameObject);
                    Instantiate(Bullet_death, gameObject.transform.position, gameObject.transform.rotation);
                }
                break;
            }
        }
    }
예제 #2
0
    // Start is called before the first frame update
    IEnumerator Start()
    {
        // Enemy_3コンポーネントをシーン内から探して取得する
        enemy_3 = FindObjectOfType <Enemy_3>();


        //●この構文めっちゃ便利!!
        for (int i = 0; i < enemys.Length; i++)
        {
            //スタート位置を記憶させる
            startPoint[i] = enemys[i].transform.position;

            Debug.Log("①現在の配列は?" + enemys[i]);
            //引数①動かす敵 引数②到達点を指定して、シーケンスを実行。シーケンスである必要性あるか?
            enemy_3.AttackSequence(enemys[i], arrivalPointObj[i].transform.position, go);



            // 0.5秒待つ
            yield return(new WaitForSeconds(0.5f));
        }


        //スタート位置に戻らせる
        for (int j = 0; j < enemys.Length; j++)
        {
            go = false;

            //引数①動かす敵 引数②到達点を指定して、シーケンスを実行。シーケンスである必要性あるか?
            enemy_3.AttackSequence(enemys[j], startPoint[j], go);

            // 0.5秒待つ
            yield return(new WaitForSeconds(0.5f));
        }
    }