【发布时间】:2019-09-29 19:05:50
【问题描述】:
我一直在关注 Kryzarel 的 Unity 库存教程,遇到了一个奇怪的问题,我认为这可能与某些无关。
大量的谷歌搜索没有产生任何结果。这似乎是一个晦涩难懂的问题。
https://www.youtube.com/channel/UCOM0GGMEcu-gyf4F1mT7A8Q/videos供频道参考。
但我遇到的问题是我执行以下操作:
draggableItem.transform.position = Input.mousePosition;
所以基本上可拖动项是对游戏对象上的图像组件的引用。我事先记录 Input.mousePosition 并且这些值是有意义的(在数百个范围内,例如 (563,262,0))。但是,变换位置与记录的数字相去甚远。例如,我看到的是 (48660.31, 23917.95, -7889.887)。提供 Input.mousePosition 的 debug.log 语句和将其分配给转换的代码之间没有逻辑。任何人都知道我可能配置错了什么,或者可能是错的?
我希望这个位置是 (563,262,0) 而不是它最终成为的荒谬数字。我试过localPosition 而不是transform.position,它有点 有效。因为它与我相对于鼠标移动的右上方大约有 500 或 700 的距离,所以我想避免像可能的情况下减去一些幻数这样的骇人听闻的解决方案。
编辑:一些进一步的背景,其他鼠标点击和鼠标相关的东西似乎可以正常工作。它是正交相机,或者是 unity2D 项目的默认设置
解决方案:在我的情况下,我能够根据接受的答案设置它,然后我必须修改 position 而不是 localPosition 并且还必须将世界点的 z 值归零。
【问题讨论】:
标签: user-interface unity3d input transform