コード例 #1
0
ファイル: UnitySceneService.cs プロジェクト: et9930/ECS-Game
    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;
        }
    }
コード例 #2
0
    public void ReplaceUiLayerConfig(UiLayerInfos newConfig)
    {
        var index     = GameComponentsLookup.UiLayerConfig;
        var component = (UiLayerConfigComponent)CreateComponent(index, typeof(UiLayerConfigComponent));

        component.config = newConfig;
        ReplaceComponent(index, component);
    }
コード例 #3
0
    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);
    }
コード例 #4
0
    public void ReplaceUiLayerConfig(UiLayerInfos newConfig)
    {
        var entity = uiLayerConfigEntity;

        if (entity == null)
        {
            entity = SetUiLayerConfig(newConfig);
        }
        else
        {
            entity.ReplaceUiLayerConfig(newConfig);
        }
    }