Пример #1
0
    public static Player InstantiatePlayer(PlayerData data, Vector2 spawnPosition, Transform parent)
    {
        PersonPrefabTable personPrefabTable = PersonPrefabTable.instance;

        if (personPrefabTable == null)
        {
            return(null);
        }
        Player player = Object.Instantiate(personPrefabTable.playerPrefab, parent);

        SetPersonPosition(player, spawnPosition);
        if (MainMenuPlayerPreferences.LoadFromJson && data.weapon != WeaponType.INVALID)
        {
            SetPersonWeapon(player, data.weapon, data.ammo);
        }
        return(player);
    }
Пример #2
0
    public static Enemy InstantiateEnemy(EnemyData data, Transform parent, bool showFieldOfView)
    {
        PersonPrefabTable personPrefabTable = PersonPrefabTable.instance;

        if (personPrefabTable == null)
        {
            return(null);
        }
        Enemy enemy;
        IPlayerFollowBehaviour playerFollowBehaviour = new BasicPlayerFollowBehaviour();

        playerFollowBehaviour = new LookForPlayerBehaviour(playerFollowBehaviour);
        switch (data.type)
        {
        case EnemyType.BASIC:
            enemy = Object.Instantiate(personPrefabTable.basicEnemyPrefab, parent);
            playerFollowBehaviour = new SearchForPlayerBehaviour(playerFollowBehaviour, 4);
            break;

        case EnemyType.EASY:
            enemy = Object.Instantiate(personPrefabTable.easyEnemyPrefab, parent);
            break;

        case EnemyType.HARD:
            enemy = Object.Instantiate(personPrefabTable.hardEnemyPrefab, parent);
            playerFollowBehaviour = new SearchForPlayerBehaviour(playerFollowBehaviour, 2);
            break;

        default:
            return(null);
        }
        enemy.Type = data.type;
        enemy.SetPlayerFollowBehaviour(playerFollowBehaviour);
        SetPersonPosition(enemy, data.position);
        SetPersonWeapon(enemy, data.weapon, data.ammo);
        enemy.PatrolPoints = data.patrolPoints;
        if (showFieldOfView)
        {
            enemy.VisualizeFieldOfView();
        }
        return(enemy);
    }
 void Awake()
 {
     instance = this;
 }