Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 将Input.mousePosition指定给Unity2D中的transform.position时出现问题_User Interface_Unity3d_Input_Transform - Fatal编程技术网

User interface 将Input.mousePosition指定给Unity2D中的transform.position时出现问题

User interface 将Input.mousePosition指定给Unity2D中的transform.position时出现问题,user-interface,unity3d,input,transform,User Interface,Unity3d,Input,Transform,我一直在关注Kryzarel的Unity目录教程,遇到了一个奇怪的问题,我认为可能是因为一些无关的东西 大量的谷歌搜索没有结果。这似乎是一个模糊的问题 供本频道参考 但我遇到的问题是我做了以下工作: draggableItem.transform.position = Input.mousePosition; 所以基本上,可拖动项是对游戏对象上图像组件的引用。我将Input.mousePosition记录在手边,并且这些值是有意义的(在数百个范围内,例如(563262,0))。但是,变换位置与

我一直在关注Kryzarel的Unity目录教程,遇到了一个奇怪的问题,我认为可能是因为一些无关的东西

大量的谷歌搜索没有结果。这似乎是一个模糊的问题

供本频道参考

但我遇到的问题是我做了以下工作:

draggableItem.transform.position = Input.mousePosition;
所以基本上,可拖动项是对游戏对象上图像组件的引用。我将Input.mousePosition记录在手边,并且这些值是有意义的(在数百个范围内,例如(563262,0))。但是,变换位置与记录的数字相差甚远。例如,我看到(48660.3123917.95,-7889.887)。给出Input.mousePosition的debug.log语句与将其分配给转换的代码之间没有逻辑。有人知道我可能配置错了什么吗

我希望这个职位是(563262,0),而不是它最终的荒谬数字。我尝试了
localPosition
而不是
transform.position
,它有点奏效。在我相对于鼠标移动的右上角大约有500或700,如果可能的话,我想避免像减去一些魔法数字这样的黑客解决方案

编辑:一些进一步的背景,其他鼠标点击和鼠标相关的东西似乎工作正常。它是正交摄影机,或unity2D项目的默认摄影机


解决方案:在我的情况下,我能够根据接受的答案设置它,然后我必须修改
位置
而不是
本地位置
,还必须将世界点的z值归零。

鼠标位置是相对于屏幕的,而不是相对于世界的。您需要使用以下工具将屏幕空间转换为世界空间:

 var pos = Camera.ScreenToWorldPoint(Input.mousePosition);

鼠标位置是相对于屏幕的,而不是相对于世界的。您需要使用以下工具将屏幕空间转换为世界空间:

 var pos = Camera.ScreenToWorldPoint(Input.mousePosition);

对不起,一开始我没有正确阅读你的问题,我认为这对你没有帮助。如果你确认它没有帮助,我会删除它。事实上,这种方法起到了一半的作用,在这和归零z值之间,我能够得到正确的结果!!!还必须将UI元素移动到左下角,但它提供了正确的坐标。太好了!如果您使用的是Ui,您可能想查看抱歉,我起初没有正确阅读您的问题,并且认为这对您没有帮助。如果你确认它没有帮助,我会删除它。事实上,这种方法起到了一半的作用,在这和归零z值之间,我能够得到正确的结果!!!还必须将UI元素移动到左下角,但它提供了正确的坐标。太好了!如果您正在使用Ui,您可能希望签出