예제 #1
0
    private void GenerateBat(float x, float y)
    {
        EnemyData newEnemy = ScriptableObject.CreateInstance <EnemyData>();

        newEnemy.Create(batData, transform.position.x, transform.position.y, StaticData.RandomLevel());

        GameObject g     = Instantiate(new GameObject(), Vector3.zero, Quaternion.identity);
        GameObject enemy = Instantiate(_enemy, new Vector3(x, y, 0), Quaternion.identity, g.transform);

        Animator animator = enemy.GetComponentInChildren <Animator>();

        SetAnimation(newEnemy, animator);

        enemy.GetComponent <Attack>().Create(newEnemy, _players, animator);
        enemy.GetComponent <EnemiesLive>().Create(newEnemy, _playerDatas);
        enemy.GetComponent <EnemiesMovement>().Create(newEnemy, _players, _playerDatas, _blockingLayer, animator);
        enemy.GetComponent <Pathfinding>().Create(newEnemy);
        enemy.GetComponentInChildren <SpriteRenderer>().sprite = newEnemy.Sprite;
        enemy.GetComponent <BoxCollider2D>().size   = new Vector3(newEnemy.ColliderX, newEnemy.ColliderY);
        enemy.GetComponent <BoxCollider2D>().offset = new Vector2(0, newEnemy.ColliderY / 2);
        enemy.GetComponentInChildren <CircleCollider2D>().radius = 30f;
        enemy.transform.GetChild(2).transform.position           = new Vector3(x, y, 0) + new Vector3(0, newEnemy.EffectY + 0.181f, 0);
        enemy.transform.GetChild(3).transform.position           = new Vector3(x, y, 0) + new Vector3(-0.44f, newEnemy.EffectY, 0);
        enemy.transform.GetChild(4).transform.position           = new Vector3(x, y, 0) + new Vector3(0, newEnemy.EffectY, 0);
    }
예제 #2
0
    private void CreateEnemy(EnemyData enemyData, float x, float y, List <PlayerData> playerDatas)
    {
        EnemyData newEnemy = ScriptableObject.CreateInstance <EnemyData>();

        newEnemy.Create(enemyData, x, y, StaticData.RandomLevel());

        GameObject enemy = Instantiate(Enemy, new Vector3(x, y, 0), Quaternion.identity);

        enemiesList.Add(enemy);

        Animator animator = enemy.GetComponentInChildren <Animator>();

        SetAnimation(newEnemy, animator);

        enemy.GetComponent <Attack>().Create(newEnemy, players, animator);
        enemy.GetComponent <EnemiesLive>().Create(newEnemy, playerDatas);
        enemy.GetComponent <EnemiesMovement>().Create(newEnemy, players, playerDatas, BlockingLayer, animator);
        enemy.GetComponent <Pathfinding>().Create(newEnemy);
        enemy.GetComponentInChildren <SpriteRenderer>().sprite = newEnemy.Sprite;
        enemy.GetComponent <BoxCollider2D>().size      = new Vector2(newEnemy.ColliderX, newEnemy.ColliderY);
        enemy.GetComponent <BoxCollider2D>().offset    = new Vector2(0, newEnemy.ColliderY / 2);
        enemy.transform.GetChild(2).transform.position = new Vector3(x, y, 0) + new Vector3(0, newEnemy.EffectY + 0.181f, 0);
        enemy.transform.GetChild(3).transform.position = new Vector3(x, y, 0) + new Vector3(-0.44f, newEnemy.EffectY, 0);
        enemy.transform.GetChild(4).transform.position = new Vector3(x, y, 0) + new Vector3(0, newEnemy.EffectY, 0);
    }