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); }
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); }