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

网站开发补充协议大型建设网站制作

网站开发补充协议,大型建设网站制作,渝网互联重庆网站制作,网站建设吉金手指专业12改动之前的源代码&#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/a/433329.html

相关文章:

  • 琴行网站开发学术论文加强门户网站建设的讲话
  • 新网如何管理网站长沙企业模板建站
  • 做宣传语的网站网站做好了如何发布
  • 东莞建设网 东莞市住房和城乡建设局门户网站自己搭建小型服务器
  • 网页视频下载器app扬中seo
  • 最简单的网站开发软件百度学术论文查重免费检测
  • 屯留做网站哪里好上海手机网站建设报价表
  • 网站开发php学校泉州建设网站开发
  • 个人做跨境电商的平台网站有哪些天眼企业信息查询系统官网
  • 买域名做网站表白自适应企业网站用什么框架做
  • 电子商务网站规划的原则是什么太原网站制作维护
  • 无锡网站建设君通科技公司中国今天最新军事新闻
  • 网站设置兼容模式怎么弄软盟软件 app开发公司
  • 丹阳网站建设开发网站开发费入什么科目
  • 天津网站设计建设宝洁网站建设
  • 廉溪区建设局网站wordpress文章more插件
  • 怎么自己做淘宝客网站吗wordpress投稿图片
  • 网站开发 语音网站服务器查询
  • 网站优化塔山双喜wordpress收费下载
  • 网站建设与维护实训心得如何用python 做网站
  • 北海 网站制作工线上广告
  • 网站搭建的步骤海东地区谷歌seo网络优化
  • 营销型网站的建设方案公司网站建设模块
  • 文汇网站建设网页界面设计欣赏
  • 纯静态网站制作wordpress菜单外链
  • 网站开发部门结构够完美网站建设
  • 双语网站代码群晖wordpress英文
  • 免费做的网站怎么设置域名网站加载不出来是什么原因
  • 网站建设 教学设计深圳注册公司怎么注册
  • 威海网站优化做落地页的网站