コード例 #1
0
        public override void Render(ref GameObject targetObject,
                                    RenderContext renderContext,
                                    GameObject parentObject)
        {
            GetOrCreateSelfObject(renderContext, ref targetObject, parentObject);

            var graphic = targetObject.GetComponent <Graphic>() as Component;

            if (graphic != null)
            {
                // Groupには、描画コンポーネントは必要ない Graphicコンポーネントがある 削除する
                // オフにする手もあるかもだが、のちのSetupComponentsとぶつかる可能性あり
                // Debug.LogWarning($"[{Importer.NAME}] {graphic.gameObject.name}: Graphic Component change to {typeof(T)}.", go);
                Object.DestroyImmediate(graphic);
            }
            var canvasRenderer = targetObject.GetComponent <CanvasRenderer>();

            if (canvasRenderer != null)
            {
                Object.DestroyImmediate(canvasRenderer);
            }

            RenderedChildren = RenderChildren(renderContext, targetObject);
            ElementUtil.SetupCanvasGroup(targetObject, CanvasGroup);
            ElementUtil.SetupChildImageComponent(targetObject, RenderedChildren);
            ElementUtil.SetupFillColor(targetObject, FillColorJson);
            ElementUtil.SetupContentSizeFitter(targetObject, ContentSizeFitterJson);
            ElementUtil.SetupLayoutGroup(targetObject, LayoutGroupJson);
            ElementUtil.SetupLayoutElement(targetObject, LayoutElementJson);
            ElementUtil.SetupComponents(targetObject, ComponentsJson);
            ElementUtil.SetupMask(targetObject, MaskJson);
            ElementUtil.SetupRectMask2D(targetObject, RectMask2D);
            // ScrollRectを設定した時点で、はみでたContentがアジャストされる PivotがViewport内に入っていればOK
            GameObject goContent = null;

            if (RenderedChildren.Count > 0)
            {
                goContent = RenderedChildren[0].Item1;
            }
            ElementUtil.SetupScrollRect(targetObject, goContent, ScrollRectJson);
            ElementUtil.SetupRectTransform(targetObject, RectTransformJson);
        }
コード例 #2
0
        public override void Render(ref GameObject targetObject, RenderContext renderContext, GameObject parentObject)
        {
            GetOrCreateSelfObject(renderContext, ref targetObject, parentObject);

            ElementUtil.SetLayer(targetObject, Layer);
            ElementUtil.SetupRectTransform(targetObject, RectTransformJson);

            // タッチイベントを取得するイメージコンポーネントになる
            ElementUtil.SetupFillColor(targetObject, FillColorJson);

            // コンテンツ部分を入れるコンテナ
            var goContent = new GameObject("$Content");

            ElementUtil.SetLayer(goContent, Layer); // Viewportと同じレイヤー
            var contentRect = ElementUtil.GetOrAddComponent <RectTransform>(goContent);

            goContent.transform.SetParent(targetObject.transform);

            if (_contentJson != null)
            {
                goContent.name = _contentJson.Get("name") ?? "";
                var rectJson = _contentJson.GetDic("rect_transform");
                if (rectJson != null)
                {
                    ElementUtil.SetupRectTransform(goContent, rectJson);
                }

                var contentLayout = _contentJson.GetDic("layout");
                ElementUtil.SetupLayoutGroup(goContent, contentLayout);

                var contentSizeFitter = _contentJson.GetDic("content_size_fitter");
                ElementUtil.SetupContentSizeFitter(goContent, contentSizeFitter);
            }

            //Viewportのチャイルドはもとより、content向けのAnchor・Offsetを持っている
            RenderChildren(renderContext, goContent);

            ElementUtil.SetupRectMask2D(targetObject, RectMask2D);
            // ScrollRectを設定した時点ではみでたContentがアジャストされる PivotがViewport内に入っていればOK
            ElementUtil.SetupScrollRect(targetObject, goContent, _scrollRectJson);
        }