【Unity3D】获取UGUI位置不正确问题

编程入门 行业动态 更新时间:2024-10-25 18:27:19

【Unity3D】获取UGUI位置<a href=https://www.elefans.com/category/jswz/34/1771406.html style=不正确问题"/>

【Unity3D】获取UGUI位置不正确问题

1、Layout组件影响(HorizontalLayout、Vertical...等)

        首先必须SetActive显示所有Layout组件下的UGUI物体,再进行立即强制重建布局
UnityEngine.UI.LayoutRebuilder.ForceRebuildLayoutImmediate(rectTransform)传入的是一个RectTransform组件对象,然后才去获取UGUI位置。

2、Animator动画系统影响

        原因:由Animator播放的动画片段播放完后,Animator依然会使用动画片段最后一帧动画参数锁死所控制的参数,锁死意思是你无法通过任何手段去修改这个参数了,除非禁用Animator或者播放另一个不影响这参数的动画片段。

        2.1 检查UGUI其身上以及其所有父物体是否有Animator控制它,若有则检查每一个Animator的每一个AnimationClip动画片段,找到控制它的动画帧,删掉这些控制它的动画帧即可,然后才去获取UGUI位置。
        若不想删除动画帧,可以使用一个空物体代替它作为动画帧控制对象,它再作为空物体的子物体即可,除非动画帧控制的是UGUI物体的Image之类的,才无法使用空物体形式,例如控制position、scale、rotaion都可以利用再新增一个空物体作为控制对象去间接控制UGUI,而不要影响到UGUI的位置。

        2.2 由于2.1方法过于复杂,你可以找到会控制UGUI的动画片段后,在Animator动画控制器里添加一个空动画,在播放完控制UGUI的动画片段后,连上空动画即可解除锁死动画控制参数。

        2.3 最暴力做法,将全部控制它的Animator禁用,获取UGUI位置后再恢复回来。

更多推荐

【Unity3D】获取UGUI位置不正确问题

本文发布于:2023-11-16 01:04:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1611171.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不正确   位置   Unity3D   UGUI

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!