Vector3.ToString";轮数;生成后的小数
我正在尝试使用Vector3.ToString";轮数;生成后的小数,string,unity3d,vector,coordinates,resolution,String,Unity3d,Vector,Coordinates,Resolution,我正在尝试使用Input.mousePosition.x.ToString(“F4”)在Unity3D中获得非常精确的Input.mousePosition并且在编辑器中一切都正常。我得到了4个小数点符号,正好符合我的需要。但是,在我构建应用程序之后,我一直得到x.0000 重要的是,在编辑器中,只有当我选择精确分辨率,而不是纵横比或自由纵横比时,我才得到零。我尝试使用构建分辨率设置,例如禁用所有纵横比、设置精确分辨率、窗口/全屏模式。到目前为止没有任何帮助 似乎内置的应用程序会禁用中间像素位置
Input.mousePosition.x.ToString(“F4”)在Unity3D中获得非常精确的Input.mousePosition代码>并且在编辑器中一切都正常。我得到了4个小数点符号,正好符合我的需要。但是,在我构建应用程序之后,我一直得到x.0000
重要的是,在编辑器中,只有当我选择精确分辨率,而不是纵横比或自由纵横比时,我才得到零。我尝试使用构建分辨率设置,例如禁用所有纵横比、设置精确分辨率、窗口/全屏模式。到目前为止没有任何帮助
似乎内置的应用程序会禁用中间像素位置,我不知道为什么
我知道有很多关于vector3小数的问题和信息,但我的问题主要是关于Unity中的显示分辨率(像素坐标之间)。提前感谢您的建议。听起来Vector3不是问题,而是您所获得的价值。4位小数精度的中间像素值对您的应用程序至关重要吗?如果你想一想:通常鼠标正好在某个像素上,并且在两个值之间。。老实说,我不知道他们为什么会存在于UnityEditor@derHugo是的,不幸的是,这种精度是必不可少的。我同意通常鼠标(逻辑上应该是)在精确的像素上,但Input.mousePosition确实是向量3,至少有6-9个小数点。我确信有可能获得这些精确的值,因为我在编辑器的debug.log中获取它们。但是你有ToString(“F4”)
,也就是用4位小数格式化浮点,对吗?您是否尝试过只做ToString()
,看看您得到了什么?您是使用ToString(“F4”)调用Debug.Log
还是只使用Debug.Log(Input.mousePosition.x)
?编辑:我读错了,我认为x.0000
的意思是说你得到了4个小数,这太少了。看起来很奇怪,浮点会被舍入到最接近的整数x.0000
。。。你确定你在打印之前没有在代码中做一些取整的事情吗?如果在构建游戏时浮动突然变成int
,那么会有无数的错误报告听起来这不是Vector3的问题,而是你得到的值的问题。4位小数精度的中间像素值对您的应用程序至关重要吗?如果你想一想:通常鼠标正好在某个像素上,并且在两个值之间。。老实说,我不知道他们为什么会存在于UnityEditor@derHugo是的,不幸的是,这种精度是必不可少的。我同意通常鼠标(逻辑上应该是)在精确的像素上,但Input.mousePosition确实是向量3,至少有6-9个小数点。我确信有可能获得这些精确的值,因为我在编辑器的debug.log中获取它们。但是你有ToString(“F4”)
,也就是用4位小数格式化浮点,对吗?您是否尝试过只做ToString()
,看看您得到了什么?您是使用ToString(“F4”)调用Debug.Log
还是只使用Debug.Log(Input.mousePosition.x)
?编辑:我读错了,我认为x.0000
的意思是说你得到了4个小数,这太少了。看起来很奇怪,浮点会被舍入到最接近的整数x.0000
。。。你确定你在打印之前没有在代码中做一些取整它的事情吗?如果在构建游戏时浮动突然变成int
,将会有无数的错误报告