示例#1
0
 public void SetData(NormalEnemyData.EnemyFormation enemyFormData, GameObject baseObj, EnemyFactory factory)
 {
     EnemyBulletBaseObject   = baseObj;
     hp                      = enemyFormData.life;
     score                   = enemyFormData.score;
     enemyAi                 = enemyFormData.enemyAI;
     this.factory            = factory;
     SetBezierState();
 }
    public bool CreateNormalEnemy(NormalEnemyData.EnemyFormation enemy)
    {
        GameObject obj = null;
        Dictionary<int, GameObject>.ValueCollection readyEnemyObjects = readyNormalEnemyObjectDic[enemy.prefab.name].Values;
        if (isNormalEnemyUnenable(readyEnemyObjects)) {
            obj = getNormalEnemyUnenableGObj(readyEnemyObjects);
            if (obj.GetComponent<Enemy>().renderEnable != null) obj.GetComponent<Enemy>().renderEnable.enabled = false;
            obj.SetActive(true);
        }

        if (obj != null) {
            float x = enemy.pos;
            float y = enemy.pos;
            float scale = enemy.scale;
            obj.transform.localScale = new Vector3(scale, scale, 1);

            switch ((WallType)enemy.trans_id) {
                case WallType.UP:
                    obj.transform.position = new Vector3(x, WallObjects[enemy.trans_id].transform.position.y + 1, 0);
                    break;

                case WallType.DOWN:
                    obj.transform.position = new Vector3(x, WallObjects[enemy.trans_id].transform.position.y, 0);
                    obj.transform.Rotate(0, 0, 180);
                    break;

                case WallType.RIGHT:
                    obj.transform.position = new Vector3(WallObjects[enemy.trans_id].transform.position.x, y, 0);
                    obj.transform.Rotate(0, 0, -90);
                    break;

                case WallType.LEFT:
                    obj.transform.position = new Vector3(WallObjects[enemy.trans_id].transform.position.x, y, 0);
                    obj.transform.Rotate(0, 0, 90);
                    break;
            }
            // 敵を生成
            obj.GetComponent<Enemy>().SetData(enemy, EnemyBulletBaseObject, this);
            return true;
        }
        return false;
    }