public PoolingObjectManager(Logger logger, PrefabProvider prefabProvider) { _pools = new Dictionary <string, ObjectPool>(); _logger = logger; _prefabProvider = prefabProvider; }
public static void LoadPrefabs(PrefabProvider prefabProvider) { var prefabs = Resources.LoadAll <GameObject>("Prefabs/"); foreach (var prefab in prefabs) { prefabProvider.AddPrefab(prefab); } }
public Background(PrefabProvider provider) { m_provider = provider; CreateBG(); }
public Game(PrefabProvider provider) { m_provider = provider; CreatRandomFigure(); m_Background = new Background(provider); }
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); }
private static void AssignProperty(SerializedObject obj, SerializedProperty property) { property.GetFieldInfoAndStaticType(out Type fieldType); var root = obj.targetObject as Component; bool hasPrefabInName = property.name.Contains("prefab", StringComparison.InvariantCultureIgnoreCase); string targetName = typeof(T).Name + " " + property.name; if (typeof(ScriptableObject).IsAssignableFrom(typeof(T))) { targetName = obj.targetObject.name + " " + targetName; } if (property.isArray) { if (property.arraySize != 0) { return; } // Nasty trick incoming property.InsertArrayElementAtIndex(0); SerializedProperty elementProperty = property.GetArrayElementAtIndex(0); elementProperty.GetFieldInfoAndStaticType(out Type element); property.DeleteArrayElementAtIndex(0); // Nasty trick over if (typeof(Component).IsAssignableFrom(element)) { List <Component> all; if (root != null && !hasPrefabInName) { all = root.GetComponentsInChildren(element, true).ToList(); if (all.Count == 0) { all = PrefabProvider.GetAll(element, targetName); } } else { all = PrefabProvider.GetAll(element, targetName); } property.arraySize = all.Count; for (int i = 0; i < all.Count; i++) { property.GetArrayElementAtIndex(i).objectReferenceValue = all[i]; } } else if (typeof(Object).IsAssignableFrom(element)) { List <Object> all = ObjectProvider.GetAll(element, targetName); property.arraySize = all.Count; for (var i = 0; i < all.Count; i++) { property.GetArrayElementAtIndex(i).objectReferenceValue = all[i]; } } } else { if (property.propertyType != SerializedPropertyType.ObjectReference) { return; } if (property.objectReferenceValue != null) { return; } if (typeof(Component).IsAssignableFrom(fieldType)) { if (root != null && !hasPrefabInName) { Component[] children = root.GetComponentsInChildren(fieldType, true); if (children.Length != 0) { (property.objectReferenceValue, _) = NameProcessor.GetMatching(children, targetName); return; } } property.objectReferenceValue = PrefabProvider.GetOne(fieldType, targetName); } else if (typeof(GameObject).IsAssignableFrom(fieldType)) { property.objectReferenceValue = PrefabProvider.GetOne(targetName); } else if (typeof(Object).IsAssignableFrom(fieldType)) { property.objectReferenceValue = ObjectProvider.GetOne(fieldType, targetName); } } }
void Awake() { instnace = this; }
void Start() { PrefabProvider provider = gameObject.GetComponent <PrefabProvider>(); m_game = new Game(provider); }