隨着代碼:結構擴展方法
someVector.FixRounding(); //round vector's values to integers if the difference is 1 epsilon
float x = someVector.x; //still getting old value
public static void FixRounding(this Vector3 v)
{
if (Mathf.Approximately(v.x, Mathf.Round(v.x))) v.x = Mathf.Round(v.x);
if (Mathf.Approximately(v.y, Mathf.Round(v.y))) v.y = Mathf.Round(v.y);
if (Mathf.Approximately(v.z, Mathf.Round(v.z))) v.z = Mathf.Round(v.z);
}
的FixRounding方法實際上並沒有改變載體的價值觀雖然Mathf.Approximately返回true。
請注意,截圖會顯示一個可能已經四捨五入的值。這就是爲什麼我建議使用往返格式或使用「BitConverter.DoubleToInt64Bits」顯式轉換爲字符串。 –
@AlexeiLevenkov:現在完成 - 您可能想要刪除您的評論。 –