/// <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)); }