当前位置: 首页 > wzjs >正文

深圳3d网站建设电商网站建设开发

深圳3d网站建设,电商网站建设开发,高端网站建设的方案,免费漫画大全免费版改动之前的源代码&#xff1a;发现组件的位置&#xff0c;与设计的位置不一样&#xff0c;但是如果把这段代码&#xff0c;交给一个按钮按下回调&#xff0c;就不会出现问题。 void Start(){//初始化Text 行//读取配置文件&#xff1b;StaticDataObj obj Resources.Load<St…

         改动之前的源代码:发现组件的位置,与设计的位置不一样,但是如果把这段代码,交给一个按钮按下回调,就不会出现问题

void Start(){//初始化Text 行//读取配置文件;StaticDataObj obj = Resources.Load<StaticDataObj>("StaticDataObj");//初始化Texts行;根据一页的行数;GameObject gameObject = Resources.Load<GameObject>("ModelText");for (int i = 0; i < PageLimit; i++){//生成Text行;GameObject OneLine = Instantiate(gameObject, AllLinesFather.transform);OneLine.name = "Text_" + i;RectTransform gameObjrect = OneLine.GetComponent<RectTransform>();//设置Text 位置和大小;gameObjrect.position = obj.linesMesList_1[i].pos;Vector2 size = obj.linesMesList_1[i].size;SetSize(gameObjrect, size.x, size.y);Lines.Add(OneLine.GetComponent<Text>());}//初始化Text 属性;foreach (Text text in Lines){text.text = "";// 修改字体if (text != null && newFont != null){text.font = newFont;text.fontStyle = FontStyle.Bold; // 可选:设置字体样式text.fontSize = 128;              // 可选:调整字号}}// 绑定选项改变事件dropdown.onValueChanged.AddListener(OnDropdownValueChanged);//初始化行字数限制;LineLimit = int.Parse(fontNum.text);}

 

问题原因

1. UI 布局计算滞后
  • Unity 的 UI 系统(Canvas、布局组件等)在 Start 阶段可能尚未完成初始化,此时直接设置 RectTransform 的位置/尺寸会被后续的自动布局覆盖。
  • 典型场景:父对象(AllLinesFather)使用了 VerticalLayoutGroupGridLayoutGroup 等布局组件,这些组件会在 Start 之后自动调整子对象的位置。
2. Canvas 渲染延迟
  • Canvas 的渲染发生在帧末尾,如果在 Start 中立即修改 UI 元素属性,可能因 Canvas 未准备好导致计算错误。

 

解决方案:

1. 使用协程延迟初始化
在 Start 中启动协程,等待一帧让布局系统完成计算后再设置位置:

改动后源代码:完美解决!!

IEnumerator InitializeTexts(){// 等待一帧,确保布局系统完成计算yield return null;//读取配置文件;StaticDataObj obj = Resources.Load<StaticDataObj>("StaticDataObj");//初始化Texts行;根据一页的行数;GameObject gameObject = Resources.Load<GameObject>("ModelText");for (int i = 0; i < PageLimit; i++){//生成Text行;GameObject OneLine = Instantiate(gameObject, AllLinesFather.transform);OneLine.name = "Text_" + i;RectTransform gameObjrect = OneLine.GetComponent<RectTransform>();//设置Text 位置和大小;gameObjrect.position = obj.linesMesList_1[i].pos;Vector2 size = obj.linesMesList_1[i].size;SetSize(gameObjrect, size.x, size.y);Lines.Add(OneLine.GetComponent<Text>());}//初始化Text 属性;foreach (Text text in Lines){text.text = "";// 修改字体if (text != null && newFont != null){text.font = newFont;text.fontStyle = FontStyle.Bold; // 可选:设置字体样式text.fontSize = 128;              // 可选:调整字号// SetScale(text.GetComponent<RectTransform>(), 0.1f);// SetSize(text.GetComponent<RectTransform>(), 5947.3f, 284.28f);}}}void Start(){//初始化Text 行StartCoroutine(InitializeTexts());// 绑定选项改变事件dropdown.onValueChanged.AddListener(OnDropdownValueChanged);//初始化行字数限制;LineLimit = int.Parse(fontNum.text);}

 

总结

  • 核心问题:UI 布局计算滞后于 Start 方法的执行。
  • 关键解决
    1. 使用协程延迟到下一帧初始化。
    2. 禁用自动布局组件或使用 anchoredPosition 手动定位。
    3. 确保坐标系和锚点设置正确。
http://www.dtcms.com/wzjs/57747.html

相关文章:

  • 网站建设外包名词解释滕州网站建设优化
  • 天津市武清区网站建设长沙网站优化
  • 服务周到的上海网站建设公google服务框架
  • 网站开发与维护课程设计免费seo网站的工具
  • 自己做的网站别人怎么访问百度com百度一下你
  • 加盟网大全外贸seo优化
  • 什么网站教做美食电商网站
  • 购物网站seo镇江关键字优化品牌
  • 如何做设计网站页面设计市场调研的方法
  • 如何查到别人的网站做哪些竞价词哈尔滨百度搜索排名优化
  • 做任务 送科比网站seo整站排名
  • 如何把自己做的网站连上网必应bing国内版
  • 武冈网络推广厦门网站优化
  • 西安网站seo技术厂家seo网站排名软件
  • 做网站电脑需要配置很好吗5118站长工具
  • 网站设计收费网络运营团队
  • 织梦企业网站源码前端seo搜索引擎优化
  • wordpress 微信 登录界面优化大师下载旧版本安装
  • 购物网站的后台中国网评中国网评
  • wordpress网站如何播放视频播放器百度seo优化排名软件
  • 企业网站 开源关键词歌词林俊杰
  • 做自媒体要知道的网站十大免费无代码开发软件
  • 国外购物网站怎么做四川省最新疫情情况
  • 工程建设网站导航图高端企业网站建设
  • 做一网站要什么时候开始网站关键字优化价格
  • 可以做设计的网站广州百度推广电话
  • 焦作做网站最专业的公司seo搜索推广
  • 电脑卸载不了wordpressseo与网络推广的区别和联系
  • 学网站制作多少钱购物网站大全
  • 民治做网站的公司网站推广做什么