Пример #1
0
        /// <summary>
        /// Constructor create shared world
        /// </summary>
        /// <param name="game">The game</param>
        public Environment(int simulationPerSeconds, EnvironmentBehaviour behavior) : base()
        {
            Turn                 = 0;
            _behavior            = behavior;
            SimulationPerSeconds = simulationPerSeconds;
            World world = new World(this);

            InitAgents(world);
            Memory["World"] = world;
        }
    void Awake()
    {
        if (Instance != null)
        {
            Destroy(gameObject);
        }
        else
        {
            Instance = this;
            DontDestroyOnLoad(this);
        }

        var playerPrefab      = Resources.Load("PlayerBehaviour");
        var gamePrefab        = Resources.Load("GameBehaviour");
        var environmentPrefab = Resources.Load("EnvironmentBehaviour");

        var pb = Instantiate(playerPrefab, transform) as GameObject;
        var eb = Instantiate(environmentPrefab, transform) as GameObject;
        var gb = Instantiate(gamePrefab, transform) as GameObject;

        playerBehaviour      = pb.GetComponent <PlayerBehaviour>();
        environmentBehaviour = eb.GetComponent <EnvironmentBehaviour>();
        gameBehaviour        = gb.GetComponent <GameBehaviour>();



        playerBehaviour.PlayerMovementEvent.AddListener(OnPlayerMove);

        Upgradeables = new List <IUpgradeable>()
        {
            playerBehaviour, environmentBehaviour, gameBehaviour
        };

        behaviours = new List <GameObject>()
        {
            pb, eb, gb
        };
        behaviours.ForEach(go => go.SetActive(false));

        upgradeDict = new Dictionary <string, IUpgradeable>();
        Upgradeables.ForEach(u => upgradeDict.Add(u.GetType().ToString(), u));
    }