Unity 游戏对象位置 z 在脚本中创建对象后神秘地发生了变化

本文关键字:变化 发生了 创建对象 对象 游戏 位置 脚本 Unity | 更新日期: 2023-09-27 18:34:08

我再次遇到Unity问题。由于我正在开发的游戏中的保密协议级别,我无法编写太多代码,但是我在运行代码时遇到了一个烦人的问题。

因此,我在运行时进入游戏中的某个视图时创建游戏对象。我为我们的游戏故事创建了一个所谓的阅读器,它从数据库中读取文本,将其拆分为段落,围绕该paraghraph文本创建游戏对象(为其设置文本组件等(,然后将该游戏对象及其文本添加到故事面板中,该面板将所有对象显示为遮罩面板中的可滚动视图。

希望你能跟上我的解释:D

一切正常,直到段落正确显示在父对象(文本的视图面板(下方并在场景视图中正确显示,但是......问题是,尽管我已经在更新循环中进行了几次检查,但 Unity 只是不断为游戏对象设置它们提供随机 z 位置 position z = -350

这使得它们脱离了玩家的视野,很难阅读:D

我已经多次调试了更新中游戏对象的位置,使其在每一帧中都给出了 z 位置 0。这显然不会影响对象在运行时在编辑器视图中具有的值......

有没有人遇到过这种问题?

附言。我不得不关闭并打开 Unity,再次加载东西,没有任何效果。

哦,还有一件事要提的是,为了拉伸文本以适应文本内容的大小和父面板宽度,我使用这些作为示例:"Unity UI 教程 - 如何制作可滚动列表"作者:rachetandclank3

Unity 游戏对象位置 z 在脚本中创建对象后神秘地发生了变化

嗯...当我更改它时,我以某种方式设法解决了这个问题:

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更改,

将游戏对象替换为位置神秘变化的对象名称。

相关文章: