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