/*set layer position * */ private void UIScreensLayerPositions() { //check if on of object is null if (_currentUIScreen == null && _nextUIScreen == null) { LoggingManager.AddErrorToLog("Try show UI screen animation without nex and current screen"); return; } if (_currentUIScreen == null) { _nextUIScreen.transform.SetSiblingIndex(0); return; } if (_nextUIScreen == null) { _currentUIScreen.transform.SetSiblingIndex(0); return; } //if next screen withOut animation so position if (_animtionSettings.staticNextUIScreen) { _currentUIScreen.transform.SetSiblingIndex(1); _nextUIScreen.transform.SetSiblingIndex(0); } else { _currentUIScreen.transform.SetSiblingIndex(0); _nextUIScreen.transform.SetSiblingIndex(1); } }
/*Logic of animation * */ private void SetAnimationParams() { switch (_animtionSettings.uiScreenAnimationType) { case EnumUIScreenAnimationType.withOut: WithOutAnimation(); break; case EnumUIScreenAnimationType.slideBottomTop: SlideBottomTop(); break; case EnumUIScreenAnimationType.slideTopBottom: SlideTopBottom(); break; case EnumUIScreenAnimationType.slideLeftRight: SlideLeftRight(); break; case EnumUIScreenAnimationType.slideRightLeft: SlideRightLeft(); break; default: LoggingManager.AddErrorToLog(_animtionSettings.uiScreenAnimationType + "Doesn't realesed in UIAinimationManager"); break; } }
public void InitCollaction <T>(string staticFileName) where T : DataVO { StartInitialization(); T traceValue; LoggingManager.Log(typeof(T) + " Start initialization"); _collactionName = staticFileName; StaticResourcesXmlLoader <T> container = StaticResourcesXmlLoader <T> .LoadContainer(UrlXmls.staticData + staticFileName); _collaction = new Dictionary <string, IStaticData>(); _listOfAllNames = new List <string>(); foreach (T data in container.dataList) { if (!_collaction.ContainsKey(data.Name)) { _collaction.Add(data.Name, data); _listOfAllNames.Add(data.Name); } else { LoggingManager.AddErrorToLog("Repeated static data element with id " + data.Name); } } LoggingManager.Log(typeof(T) + " Finish initialization"); _initializationStatus = EnumInitializationStatus.initializated; }
//set animation setting by uiMenuAnimationType private void SetAnimationSettings() { _tween.SetAnimatioDuration(_animetionSettings.duration); switch (_animetionSettings.uiMenuAnimationType) { case EnumUIMenuAnimationType.alpha: _tween.SetFadeStartEndValues(0, 1); break; case EnumUIMenuAnimationType.slideLeftRight: _tween.SetAnimationPosition(new Vector2(-CurrentObjectWidth, 0), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve); break; case EnumUIMenuAnimationType.slideRightLeft: _tween.SetAnimationPosition(new Vector2(CurrentObjectWidth, 0), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve); break; case EnumUIMenuAnimationType.slideBottomTop: _tween.SetAnimationPosition(new Vector2(0, -CurrentObjectHeight), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve); break; case EnumUIMenuAnimationType.slideTopBottom: _tween.SetAnimationPosition(new Vector2(0, CurrentObjectHeight), new Vector2(0, 0), _animetionSettings.showAnimationCurve, _animetionSettings.hideAnimationCurve); break; default: LoggingManager.AddErrorToLog("Doesnt release next animation type in UI menu " + _animetionSettings.uiMenuAnimationType.ToString()); break; } }
private IEnumerator CheckOfInitializateAllScreens() { while (true) { foreach (IInitilizationProcess pair in _uiScreens.Values) { if (pair.initializationStatus == EnumInitializationStatus.initializationError) { LoggingManager.AddErrorToLog("Problem with " + pair.ClassNameInInitialization); _initializationStatus = EnumInitializationStatus.initializationError; yield break; } if (!pair.allInitializated) { yield return(null); } } if (MainInitializationProcess.Instance.FirstScreen != EnumUIScreenID.withOutName) { ShowScreenByID(MainInitializationProcess.Instance.FirstScreen); } _initializationStatus = EnumInitializationStatus.initializated; yield break; } yield break; }
public void StartInitialization() { _initializationStatus = EnumInitializationStatus.inProgress; //get game obgect by his tag, where must be all ui screens GameObject uiScreenContainer = GameObject.FindGameObjectWithTag(TagNames.TAG_UI_SCREEN_CONTAINER); if (uiScreenContainer == null) { LoggingManager.AddErrorToLog("Didn't found game object by tag " + TagNames.TAG_UI_SCREEN_CONTAINER); _initializationStatus = EnumInitializationStatus.initializationError; return; } Dictionary <EnumUIScreenID, string> screenList = GetScreenList(); //add all screens to dictionary by his id _uiScreens = new Dictionary <EnumUIScreenID, IUIScreenController>(); foreach (KeyValuePair <EnumUIScreenID, string> pair in screenList) { if (!_uiScreens.ContainsKey(pair.Key)) { _uiScreens.Add(pair.Key, PrefabCreatorManager.Instance.InstanceComponent <IUIScreenController>(pair.Value, uiScreenContainer)); _uiScreens[pair.Key].SetDefaulStartPosition(); } else { LoggingManager.AddErrorToLog("Found repeat screen id " + pair.Key); } } StartCoroutine(CheckOfInitializateAllScreens()); }
/// <summary> /// remove current screen from stack and show preview screen /// </summary> public void ShowPreviousScreen() { //if showing/hiding animation isnt finishd if (UIScreenAnimationManager.Instance.isAnimating) { return; } if (_screenStack.Count == 0) { LoggingManager.AddErrorToLog("Try return to preview screen, but screen stack is empty"); return; } IUIScreenNavigationController previousScreenNavigationController = _screenStack[_screenStack.Count - 1]; //remove last screen it must be curren opened screen _screenStack.RemoveAt(_screenStack.Count - 1); if (_screenStack.Count == 0) { //go to main screen ShowNavigationOfPreviousScreen(_uiScreens[_finishScreen], previousScreenNavigationController.AnimationSettings, null); } else { //show preview screen from stack ShowNavigationOfPreviousScreen(_uiScreens[_screenStack[_screenStack.Count - 1].ScreenID], previousScreenNavigationController.AnimationSettings, previousScreenNavigationController.Data); } }
/** * Logic * */ public IStaticData GetDataById(string name) { if (_collaction.ContainsKey(name)) { return(_collaction[name]); } LoggingManager.AddErrorToLog("Did't found data with id " + name + " in collection " + _collactionName); return((IStaticData) new object()); }
/// <summary> /// Get Collection data by static type /// </summary> /// <param name="type">Static type</param> /// <returns>Static data</returns> public CollectionOfData GetCollectionByType(EnumStaticDataType type) { if (!_allStaticData.ContainsKey(type)) { LoggingManager.AddErrorToLog("Try get static collection by type " + type.ToString()); return(null); } return(_allStaticData[type]); }
//return component from created prefab public CMP InstanceComponent <CMP>(string prefabUrl, GameObject container = null, EnumPositioning positioning = EnumPositioning.withOut, Vector3 pos = default(Vector3)) where CMP : class { CMP returnClass = InstanceOfPrefab(prefabUrl, container, positioning, pos).GetComponent(typeof(CMP)) as CMP; if (returnClass == null) { LoggingManager.AddErrorToLog("Didnt found component " + typeof(CMP) + " in prefab " + prefabUrl); } return(returnClass); }
protected virtual T GetDataProvider <T>() where T : class { T dataProvider = _source.GetComponent <T>(); if (dataProvider == null) { LoggingManager.AddErrorToLog("Source must implement the data provider interface!"); } return(dataProvider); }
//hide menu public void HideMenu(EnumUIMenuID menuID) { if (!_uiMenus.ContainsKey(menuID)) { LoggingManager.AddErrorToLog("Try hide, but Didnt found menu " + menuID.ToString()); return; } _uiMenus[menuID].HideAnimation(); }
public TransmissionData GetTransmissionDataByIndex(int index) { for (int i = 0; i < transmissionList.Count; i++) { if (transmissionList[i].index == index) { return(transmissionList[i]); } } LoggingManager.AddErrorToLog("Didn found " + index + " transmission"); return(transmissionList[0]); }
public static Sprite LoadSprite(string url) { if (!_imagesPool.ContainsKey(url)) { _imagesPool[url] = Resources.Load <Sprite>(url); } if (_imagesPool[url] == null) { LoggingManager.AddErrorToLog("Didnt found image " + url); } return(_imagesPool[url]); }
/// <summary> /// get static element by his unical name /// </summary> /// <param name="name">unicel name of Statis Data</param> /// <returns>element VO Data</returns> public IStaticData GetStaticDataByName(string name) { foreach (CollectionOfData collection in _allStaticData.Values) { if (collection.List.IndexOf(name) != -1) { return(collection.Collaction[name]); } } LoggingManager.AddErrorToLog("Didnt found " + name + " in static data"); return(null); }
public void SetDefaulStartPosition() { _baseRectTransform = gameObject.GetComponent <RectTransform>(); if (_baseRectTransform == null) { LoggingManager.AddErrorToLog("Didn't found RectTransform in screen " + screenID.ToString()); } else { _baseRectTransform.offsetMin = new Vector3(0, 0, 0); _baseRectTransform.offsetMax = new Vector3(0, 0, 0); } }
/* Logic * */ // show menu animation public void ShowMenu(EnumUIMenuID menuID, object data = null) { if (!_uiMenus.ContainsKey(menuID)) { LoggingManager.AddErrorToLog("Try show, but Didnt found menu " + menuID.ToString()); return; } if (data != null) { _uiMenus[menuID].Data = data; } _uiMenus[menuID].ShowAnimation(); }
protected virtual void FindGamePlayController() { _gamePlayElementController = gameObject.GetComponent <GamePlayController>(); if (_gamePlayElementController == null) { _gamePlayElementController = gameObject.GetComponentInParent <GamePlayController>(); } if (_gamePlayElementController == null) { LoggingManager.AddErrorToLog("Didt found gamePlay Element Controller"); } _gamePlayElementController.initStaticData += InitStaticData; InitStaticData(); }
public static StaticResourcesXmlLoader <T> LoadContainer(string xmlUrls) { TextAsset _xml = Resources.Load <TextAsset>(xmlUrls); if (_xml == null) { LoggingManager.AddErrorToLog("Didnt load xml " + xmlUrls); } StringReader reader = new StringReader(_xml.text); XmlSerializer serializer = new XmlSerializer(typeof(StaticResourcesXmlLoader <T>)); StaticResourcesXmlLoader <T> container = serializer.Deserialize(reader) as StaticResourcesXmlLoader <T>; reader.Close(); return(container); }
//creat prefab public GameObject InstanceOfPrefab(string prefabUrl, GameObject container = null, EnumPositioning positioning = EnumPositioning.withOut, Vector3 pos = default(Vector3)) { //try to load prefab from resources folder if (!_loadedGameObjectsPool.ContainsKey(prefabUrl)) { //save loaded prefab in pool _loadedGameObjectsPool[prefabUrl] = Resources.Load(prefabUrl, typeof(GameObject)) as GameObject; } GameObject go = _loadedGameObjectsPool[prefabUrl]; if (go == null) { LoggingManager.AddErrorToLog("Didnt found prefab " + prefabUrl); } //try get RecycleGameObjectController, if it, so get it frome pool var recycledScript = go.GetComponent <RecycleGameObjectManager>(); GameObject instance = null; if (recycledScript != null) { var pool = GetObjectPool(recycledScript); instance = pool.NextObject().gameObject; } else { //creat brefab instance instance = Instantiate(go) as GameObject; } if (container != null) { //add prefab to container instance.transform.SetParent(container.transform); } if (positioning != EnumPositioning.withOut) { if (positioning == EnumPositioning.local) { instance.transform.localPosition = pos; } if (positioning == EnumPositioning.global) { instance.transform.position = pos; } } return(instance); }
public void StartInitialization() { _initializationStatus = EnumInitializationStatus.inProgress; _container = GameObject.FindGameObjectWithTag(TagNames.TAG_GAME_VIEW_CONTAINER); if (_container == null) { LoggingManager.AddErrorToLog("Didn't found game object by tag " + TagNames.TAG_GAME_VIEW_CONTAINER); _initializationStatus = EnumInitializationStatus.initializationError; return; } //creat prefab with train game view manager for view train _locomotiveViewManager = PrefabCreatorManager.Instance.InstanceComponent <LocomotiveViewManager>(PrefabsURL.LOCOMOTIVE_GAME_VIEW, _container, EnumPositioning.local, new Vector3(0, 0, 0)); _locationViewManager = PrefabCreatorManager.Instance.InstanceComponent <LocationViewManager>(PrefabsURL.LOCATION_GAME_VIEW, _container, EnumPositioning.local, new Vector3(0, 0, 10)); _initializationStatus = EnumInitializationStatus.initializated; }
//set def position private void Start() { IUIScreenNavigationController[] uiNavigationControllerArray = gameObject.GetComponentsInChildren <IUIScreenNavigationController>(); for (int i = 0; i < uiNavigationControllerArray.Length; i++) { uiNavigationControllerArray[i].Source = gameObject; } RectTransform baseRectTransform = gameObject.GetComponent <RectTransform>(); if (baseRectTransform == null) { LoggingManager.AddErrorToLog("Didn't found RectTransform in menu " + MenuID.ToString()); } else { baseRectTransform.offsetMin = new Vector2(0, 0); baseRectTransform.offsetMax = new Vector2(0, 0); } }
/// <summary> /// Check of errors /// </summary> /// <param name="screenID">id of checking screen</param> private bool CheckOfScreen(EnumUIScreenID screenID) { //if showing/hiding animation isnt finishd if (UIScreenAnimationManager.Instance.isAnimating) { return(true); } //if doesn't found screen with this name in _uiScreens if (!_uiScreens.ContainsKey(screenID)) { LoggingManager.AddErrorToLog("Try open Screen, but he is epsan in _uiScreens"); return(true); } if (screenID == _currentScreen.screenID) { return(true); } return(false); }
/*Logic */ //show first screen private void ShowScreenByID(EnumUIScreenID screenID) { if (!_uiScreens.ContainsKey(screenID)) { LoggingManager.AddErrorToLog("Try open " + screenID.ToString() + " first Screen, but he is epsan in _uiScreens"); return; } //set all deactivate foreach (KeyValuePair <EnumUIScreenID, IUIScreenController> pair in _uiScreens) { if (pair.Key != screenID) { pair.Value.baseGameObject.SetActive(false); } } ChangeCurrentScreen(_uiScreens[screenID]); _currentScreen.baseGameObject.SetActive(true); _currentScreen.SetData(null); }
//tracing of initialization process private IEnumerator TracingProcess() { while (!allInitializated) { foreach (IInitilizationProcess initilizationClass in _initializationList) { if (initilizationClass.initializationStatus == EnumInitializationStatus.initializationError) { LoggingManager.AddErrorToLog(string.Format("InitializationError in {0}", initilizationClass.ClassNameInInitialization)); yield break; } if (initilizationClass.initializationStatus == EnumInitializationStatus.inProgress) { LoggingManager.Log(string.Format("WAIT OF in {0}", initilizationClass.ClassNameInInitialization)); } } yield return(new WaitForSeconds(1f)); } LoggingManager.Instance.AddLog("All were initializated"); yield break; }
public void StartInitialization() { _initializationStatus = EnumInitializationStatus.inProgress; //get game obgect by his tag, where must be all ui screens GameObject uiMenuContainer = GameObject.FindGameObjectWithTag(TagNames.TAG_UI_MENU_CONTAINER); if (uiMenuContainer == null) { LoggingManager.AddErrorToLog("Didn't found game object by tag " + TagNames.TAG_UI_MENU_CONTAINER); _initializationStatus = EnumInitializationStatus.initializationError; return; } Dictionary <EnumUIMenuID, string> menuList = GetMenuList(); //add all screens to dictionary by his id _uiMenus = new Dictionary <EnumUIMenuID, IUIMenuController>(); foreach (KeyValuePair <EnumUIMenuID, string> pair in menuList) { if (!_uiMenus.ContainsKey(pair.Key)) { _uiMenus.Add(pair.Key, PrefabCreatorManager.Instance.InstanceComponent <IUIMenuController>(pair.Value, uiMenuContainer)); } else { LoggingManager.AddErrorToLog("Found repeat menu id " + pair.Key); } } //show menu wat should be add in start game for (int i = 0; i < MainInitializationProcess.Instance.ActivateMenu.Count; i++) { ShowMenu(MainInitializationProcess.Instance.ActivateMenu[i], null); } _initializationStatus = EnumInitializationStatus.initializated; }
//Update is called once per frame void Update() { return; if (!MainInitializationProcess.Instance.allInitializated) { return; } if (!MainGameController.Instance.MoveCamera) { return; } if (_setMaxCameraSize) { SetDefaultSettings(); } //set pixels in unit like in background if (_targetWidth < _minZoomWidth) { _targetWidth = _minZoomWidth; } if (CheckOnNewBGSize() || _targetWidth != _oldTargetWidth || changeViewProportions) { float h = _targetWidth * (float)Screen.height / (float)Screen.width; int height = Mathf.RoundToInt(h); //check on size camera and bg if (height > _bgHeight) { //LoggingManager.AddErrorToLog("HEIGHT TO BIG"); ZoomCameraIn(CAMERA_ZOOM_SPEED); Update(); return; } //check on size camera and bg if (_targetWidth > _bgWidth) { //LoggingManager.AddErrorToLog("WIDTH TO BIG"); ZoomCameraIn(CAMERA_ZOOM_SPEED); Update(); return; } _oldTargetWidth = _targetWidth; if (_mainCamera == null) { _mainCamera = GetComponent <Camera>(); if (_mainCamera == null) { LoggingManager.AddErrorToLog("Didn't found maint camera"); } } _mainCamera.orthographicSize = height / 2; //set new limits float vertical = _bgWidth - _targetWidth; float horizontal = _bgHeight - height; _leftLimit = -1 * vertical / 2; _rightLimit = vertical / 2; _topLimit = horizontal / 2; _bottomLimit = -1 * horizontal / 2; CheckOnLimits(); } /*Use for testing * reaction on key * */ if (Input.GetKey(KeyCode.RightArrow)) { MoveCameraRight(CAMERA_MOVE_SPEED); } if (Input.GetKey(KeyCode.LeftArrow)) { MoveCameraLeft(CAMERA_MOVE_SPEED); } if (Input.GetKey(KeyCode.DownArrow)) { MoveCameraDown(CAMERA_MOVE_SPEED); } if (Input.GetKey(KeyCode.UpArrow)) { MoveCameraUp(CAMERA_MOVE_SPEED); } if (Input.GetKey(KeyCode.Z)) { ZoomCameraIn(CAMERA_ZOOM_SPEED); return; } if (Input.GetKey(KeyCode.X)) { ZoomCameraOut(CAMERA_ZOOM_SPEED); return; } if (transform.position == _newPosition) { return; } float moveSpeed = _cameraMoveSpeed * _PIXELSTOUNITS * Time.deltaTime; transform.position = Vector3.Lerp(transform.position, _newPosition, moveSpeed); }