我再次遇到Unity问题。由于我正在开发的游戏中的保密协议级别,我无法编写太多代码,但是我在运行代码时遇到了一个烦人的问题。
因此,我在运行时进入游戏中的某个视图时创建游戏对象。我为我们的游戏故事创建了一个所谓的阅读器,它从数据库中读取文本,将其拆分为段落,围绕该paraghraph文本创建游戏对象(为其设置文本组件等(,然后将该游戏对象及其文本添加到故事面板中,该面板将所有对象显示为遮罩面板中的可滚动视图。
希望你能跟上我的解释:D
一切正常,直到段落正确显示在父对象(文本的视图面板(下方并在场景视图中正确显示,但是......问题是,尽管我已经在更新循环中进行了几次检查,但 Unity 只是不断为游戏对象设置它们提供随机 z 位置 position z = -350
这使得它们脱离了玩家的视野,很难阅读:D
我已经多次调试了更新中游戏对象的位置,使其在每一帧中都给出了 z 位置 0。这显然不会影响对象在运行时在编辑器视图中具有的值......
有没有人遇到过这种问题?
附言。我不得不关闭并打开 Unity,再次加载东西,没有任何效果。
哦,还有一件事要提的是,为了拉伸文本以适应文本内容的大小和父面板宽度,我使用这些作为示例:"Unity UI 教程 - 如何制作可滚动列表"作者:rachetandclank3
嗯...当我更改它时,我以某种方式设法解决了这个问题:
this.paragraphObject.transform.localPosition.Set(
this.paragraphObject.transform.position.x,
this.paragraphObject.transform.position.y,0f);
改用这个:
Vector3 newPosition = new Vector3(
this.paragraphObject.transform.position.x,
this.paragraphObject.transform.position.y, 0f);
this.paragraphObject.transform.localPosition = newPosition;
希望这可以帮助其他也在与此类问题作斗争的人。
解决方案的来源:游戏对象位置。Set(( 不起作用
在 Vector3 中的 z 位置尝试随gameObject.transform.position.z
更改,
将游戏对象替换为位置神秘变化的对象名称。