public override void Initialize() { // initialize _uiManager.RegisterUi(new PlayCanvasController(_resolver, _canvasProvider.GetCanvas("play_canvas"))); _onExitPlayClicked = _messager.Subscribe <ExitPlayClickedMessage>(message => { SwitchState(new MenuState(_resolver)); }); _onRollDiceClicked = _messager.Subscribe <RollDiceClickedMessage>(message => { var rollMagnitude = 250f; var rollDirection = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)); for (var i = 0; i < 3; i++) { var fab = Object.Instantiate(_prefabProvider.GetPrefab("dice_d6_prefab")); fab.transform.name = "dice_" + Guid.NewGuid().ToString(); fab.transform.localScale = new Vector3(0.25f, 0.25f, 0.25f); fab.transform.position = new Vector3(Random.Range(-0.5f, 0.5f), 1, Random.Range(-0.5f, 0.5f)); var fabRigidBody = fab.GetComponent <Rigidbody>(); fabRigidBody.AddForce(rollDirection * rollMagnitude); fabRigidBody.AddRelativeTorque(rollDirection * 10); } }); var tokenFab = Object.Instantiate(_prefabProvider.GetPrefab("pog_prefab")).GetComponent <PogController>(); tokenFab.Initialize("https://upload.wikimedia.org/wikipedia/commons/b/b0/PSM_V37_D105_English_tabby_cat.jpg"); tokenFab.PickUp.Initialize(_resolver); tokenFab.name = "token"; tokenFab.transform.position = new Vector3(0, 1, 0); }
public PoolingParticleManager(IoCResolver resolver) { _loops = new List <ActiveParticleLoop>(); _particleSystems = new Dictionary <string, ParticleSystem>(); // resolve references resolver.Resolve(out _logger); resolver.Resolve(out _config); resolver.Resolve(out _prefabProvider); resolver.Resolve(out _unityReferenceMaster); // initialize properties _particleParent = Object.Instantiate(_prefabProvider.GetPrefab("empty_prefab")); _particleParent.name = "pooled_particle_system_parent"; _unityReferenceMaster.OnGamePausedChangedEvent += OnGamePausedChanged; }
public PoolingBehaviour Instantiate(string prefabName) { if (!_pools.ContainsKey(prefabName)) { _pools.Add(prefabName, new ObjectPool(_logger, _prefabProvider.GetPrefab(prefabName))); } return(_pools[prefabName].Instantiate()); }
public void Start() { /* RESOURCE LIST CREATION */ #if UNITY_EDITOR AssetDatabase.Refresh(); FileServices.CreateResourcesList("Assets/Resources/resourceslist.txt"); #endif FileServices.LoadResourcesList("resourceslist"); #region LOAD RESOURCES // logger and ioc _logger = new Logger("info.log", false); _resolver = new IoCResolver(_logger); _resolver.RegisterItem(_logger); _config = new UserConfigurationManager(new UserConfigurationData { GameVolume = 1f, MusicVolume = 1f }); _resolver.RegisterItem(_config); // messager _messager = new Messager(); _resolver.RegisterItem(_messager); // unity reference master _unity = GetComponent <UnityReferenceMaster>(); _unity.DebugModeActive = false; _resolver.RegisterItem(_unity); // player var player = new UserAccountManager(); _resolver.RegisterItem(player); // material provider var materialProvider = new MaterialProvider(_logger); MaterialLoader.LoadMaterial(materialProvider, "Materials"); _resolver.RegisterItem(materialProvider); // texture provider var textureProvider = new TextureProvider(_logger); var spriteProvider = new SpriteProvider(_logger); TextureLoader.LoadTextures(textureProvider, spriteProvider, "Textures"); _resolver.RegisterItem(textureProvider); _resolver.RegisterItem(spriteProvider); // sound provider var soundProvider = new SoundProvider(_logger); SoundLoader.LoadSounds(_logger, soundProvider, "Sounds"); _resolver.RegisterItem(soundProvider); // prefab provider var prefabProvider = new PrefabProvider(_logger); PrefabLoader.LoadPrefabs(prefabProvider); _resolver.RegisterItem(prefabProvider); // pooling var poolingObjectManager = new PoolingObjectManager(_logger, prefabProvider); _resolver.RegisterItem(poolingObjectManager); var soundPoolManager = new PoolingAudioPlayer(_logger, _config, _unity, prefabProvider.GetPrefab("audio_source_prefab")); _resolver.RegisterItem(soundPoolManager); _particles = new PoolingParticleManager(_resolver); _resolver.RegisterItem(_particles); // canvas provider var canvasProvider = new CanvasProvider(_logger); _unity.LoadCanvases(canvasProvider); _resolver.RegisterItem(canvasProvider); // data provider var gameDataProvider = new GameDataProvider(_logger); /* DATA GOES HERE */ _resolver.RegisterItem(gameDataProvider); #endregion _uiManager = new UiManager(); _resolver.RegisterItem(_uiManager); // lock the resolver (stop any new items being registered) _resolver.Lock(); /* BEGIN STATE */ _currentState = new MenuState(_resolver); _currentState.Initialize(); /* SUBSCRIBE FOR GAME END */ _onExit = _messager.Subscribe <ExitMessage>(OnExit); }