在我的2D统一游戏中,我试图将我的精灵移动到触摸/光标的位置(现在是单击鼠标).
我的子画面位于位置(173、48,-52.1).
但是,当我单击一个可能距离几个像素的位置时,我的位置更改为(399,129,0),我的精灵显然被扔进了未知的地方.
if (Input.GetMouseButtonDown(0))
{
//fingerPos = Input.GetTouch(0).position;
fingerPos = Input.mousePosition;
transform.position = fingerPos;
Debug.Log(transform.position);
}
编辑
当前代码
if (Input.GetMouseButtonDown (0)) {
fingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); //Desktop
transform.position = fingerPos;
Debug.Log (transform.position);
}
更新.显然,当我单击记录的位置(以及精灵将移动到的位置)时,直接在相机上.参考图片
解决方法:
transform.position在世界坐标中.
Input.mousePosition返回像素坐标中的值.您需要将其转换为世界坐标.
fingerPos = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position); //Mobile
fingerPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); //Desktop
然后,您可以将其分配到您的位置.
transform.position = fingerPos;
编辑:
if (Input.GetMouseButtonDown(0))
{
fingerPos = Input.mousePosition;
fingerPos.z = 10;
fingerPos = Camera.main.ScreenToWorldPoint(fingerPos);
transform.position = fingerPos;
Debug.Log(transform.position);
}
原文地址:https://codeday.me/bug/20191026/1937368.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。