public virtual T AttachRenderTarget <T>(ResourceRenderTarget obj, Resource.ResourceGroup rg) where T : UnityEngine.UI.Graphic { var target = obj.GetComponent <ResourceRenderTarget>(); target.renderer = this; target.resourceGroup = rg; return(null); }
public override T AttachRenderTarget <T>(ResourceRenderTarget target, Resource.ResourceGroup rg) { base.AttachRenderTarget <T>(target, rg); System.Type type = Content.GetType(); var dst = target.GetComponent(type) as T; if (!dst) { dst = target.gameObject.AddComponent(type) as T; } var fields = type.GetFields(); foreach (var field in fields) { if (field.IsStatic) { continue; } field.SetValue(dst, field.GetValue(Content)); } var props = type.GetProperties(); foreach (var prop in props) { if (!prop.CanWrite || !prop.CanWrite || prop.Name == "name") { continue; } prop.SetValue(dst, prop.GetValue(Content, null), null); } target.transform.localPosition = Vector3.zero; RectTransform rect = target.GetComponent <RectTransform>(); rect.anchoredPosition = rectTranfrom.anchoredPosition; var cont = target.gameObject.AddComponent <ContentSizeFitter> (); cont.verticalFit = ContentSizeFitter.FitMode.PreferredSize; cont.horizontalFit = ContentSizeFitter.FitMode.PreferredSize; target.SetTarget(rg); return(dst); }
public void OnTravel(ResourceGroup group) { group.SortGroup(); if (group.ActivateState[0] == true) { int layer = 0; for (int i = 0; i < group.ResourceRefs.Count; i++) { var resource = group.ResourceRefs[i].Resources; var rend = RendererContainor.Instance.PVWRender(resource, group.IsAfterTransition); ResourceRenderTarget target = null; if (group.IsAfterTransition) { target = ResourceRenderTarget.Create(ResourceDisplayList.Instance.PVWPostRender.gameObject, layer); } else { target = ResourceRenderTarget.Create(ResourceDisplayList.Instance.PVWPreRender.gameObject, layer); } if (resource.GetType() == ResourceType.Image) { ((ImageRenderer)rend).AttachRenderTarget <UnityEngine.UI.RawImage>(target, group); } else if (resource.GetType() == ResourceType.Text) { ((TextRenderer)rend).AttachRenderTarget <UnityEngine.UI.Text>(target, group); } layer++; } } else if (group.ActivateState[1] == true) { int layer = 0; for (int j = 0; j < group.ResourceRefs.Count; j++) { var resource = group.ResourceRefs[j].Resources; var rend = RendererContainor.Instance.PGMRender(resource, group.IsAfterTransition); ResourceRenderTarget target = null; if (group.IsAfterTransition) { target = ResourceRenderTarget.Create(ResourceDisplayList.Instance.PGMPostRender.gameObject, layer); } else { target = ResourceRenderTarget.Create(ResourceDisplayList.Instance.PGMPreRender.gameObject, layer); } if (resource.GetType() == ResourceType.Image) { ((ImageRenderer)rend).AttachRenderTarget <UnityEngine.UI.RawImage>(target, group); } else if (resource.GetType() == ResourceType.Text) { ((TextRenderer)rend).AttachRenderTarget <UnityEngine.UI.Text>(target, group); } layer++; } } else if (group.ActivateState[2] == true) { //TODO : add logic in this toggle. } else { for (int j = 0; j < group.ResourceRefs.Count; j++) { var resource = group.ResourceRefs[j].Resources; var rend = RendererContainor.Instance[resource.GUID + "@PGM"]; if (rend != null) { if (group.IsAfterTransition) { ResourceDisplayList.Instance.ReFlushComponent(rend, group, ResourceDisplayList.Instance.PGMPostRender); } else { ResourceDisplayList.Instance.ReFlushComponent(rend, group, ResourceDisplayList.Instance.PGMPreRender); } } rend = RendererContainor.Instance[resource.GUID + "@PVW"]; if (rend != null) { if (group.IsAfterTransition) { ResourceDisplayList.Instance.ReFlushComponent(rend, group, ResourceDisplayList.Instance.PVWPostRender); } else { ResourceDisplayList.Instance.ReFlushComponent(rend, group, ResourceDisplayList.Instance.PVWPreRender); } } } } if (ResourceChange != null) { ResourceChange(); } }