public void InitializeLayers(UiLayerInfos uiLayerInfos) { _layersRoot = new GameObject("UILayerRoot"); Object.DontDestroyOnLoad(_layersRoot); foreach (var uiLayerInfo in uiLayerInfos.UILayers) { // create game object var layerGameObject = new GameObject(uiLayerInfo.Name); layerGameObject.transform.SetParent(_layersRoot.transform); layerGameObject.layer = 5; // create canvas var canvas = layerGameObject.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = Camera.main; canvas.planeDistance = uiLayerInfo.PlaneDistance; canvas.sortingLayerName = "UI"; canvas.sortingOrder = uiLayerInfo.OrderInLayer; // create canvas scaler var scaler = layerGameObject.AddComponent <CanvasScaler>(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.screenMatchMode = CanvasScaler.ScreenMatchMode.Expand; scaler.referenceResolution = new Vector2(1920, 1080); // create graphic raycaster layerGameObject.AddComponent <GraphicRaycaster>(); _uiLayers[uiLayerInfo.Name] = layerGameObject; } }
public void ReplaceUiLayerConfig(UiLayerInfos newConfig) { var index = GameComponentsLookup.UiLayerConfig; var component = (UiLayerConfigComponent)CreateComponent(index, typeof(UiLayerConfigComponent)); component.config = newConfig; ReplaceComponent(index, component); }
public GameEntity SetUiLayerConfig(UiLayerInfos newConfig) { if (hasUiLayerConfig) { throw new Entitas.EntitasException("Could not set UiLayerConfig!\n" + this + " already has an entity with UiLayerConfigComponent!", "You should check if the context already has a uiLayerConfigEntity before setting it or use context.ReplaceUiLayerConfig()."); } var entity = CreateEntity(); entity.AddUiLayerConfig(newConfig); return(entity); }
public void ReplaceUiLayerConfig(UiLayerInfos newConfig) { var entity = uiLayerConfigEntity; if (entity == null) { entity = SetUiLayerConfig(newConfig); } else { entity.ReplaceUiLayerConfig(newConfig); } }