C# 在脚本中创建对象后,Unity游戏对象的位置z会神秘地改变

C# 在脚本中创建对象后,Unity游戏对象的位置z会神秘地改变,c#,position,scrollview,unity5,gameobject,C#,Position,Scrollview,Unity5,Gameobject,我又一次遇到了团结的问题。由于我正在进行的游戏中的保密协议级别,我不能使用太多的代码,但我在运行代码时遇到了一个恼人的问题 因此,我在运行时在游戏中输入特定视图时创建游戏对象。我为我们的游戏故事创建了一个所谓的阅读器,它从数据库中读取文本,将其拆分为段落,围绕该段落文本创建游戏对象(设置文本组件等),然后将该游戏对象及其文本添加到故事面板中,该面板将所有对象显示为遮罩面板内的可滚动视图 希望你能跟上我的解释:D 一切正常,直到段落正确显示在父对象(文本的视图面板)下方,并且在场景视图中正确显示,

我又一次遇到了团结的问题。由于我正在进行的游戏中的保密协议级别,我不能使用太多的代码,但我在运行代码时遇到了一个恼人的问题

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

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

一切正常,直到段落正确显示在父对象(文本的视图面板)下方,并且在场景视图中正确显示,但是。。。问题是,尽管我在更新循环中做了几次检查,但Unity只是不断地给游戏对象随机的z位置来设置它们

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

我已经调试了很多次更新中游戏对象的位置,在每一帧中给出z位置0。这显然没有改变运行时对象在编辑器视图中的值

有人遇到过这种问题吗

另外,我已经完成了关闭和打开Unity的任务,再次加载内容,但没有任何效果

哦,还有一件事要提的是,为了拉伸文本以适应文本内容的大小和父面板的宽度,我使用了以下示例:
嗯。。。当我改变这一点时,我设法解决了这个问题:

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;
希望这能帮助其他也在这类问题中挣扎的人


解决方案的来源:

嗯。。。当我改变这一点时,我设法解决了这个问题:

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;
希望这能帮助其他也在这类问题中挣扎的人


解决方案来源:

在矢量3中的z位置尝试使用
gameObject.transform.position.z
进行更改

用神秘改变位置的对象名替换游戏对象


在矢量3的z位置尝试使用
gameObject.transform.position.z
进行更改

用神秘改变位置的对象名替换游戏对象


由于我的声誉,这里的另一个链接作为参考:由于我的声誉,这里的另一个链接作为参考: