我有一個 C# 腳本,我想在其中獲取一個浮點值,洗掉小數點后的所有內容,并獲得剩余數字的 int。
例如 2.5469 最終將是 [int]2。例如 546.5934 應該是 [int]546。
我正在使用 int 進行另一個計算,所以我不能只使用字串格式。Math.Roundf 也不起作用,因為我不希望它被四舍五入。
這是一個俄羅斯方塊克隆,我正在嘗試創建一系列 X 軸值,允許游戲碎片產生。我認為一個簡單的方法是在我的場景中繪制游戲區域,通過使用精靈定義它,然后拉動這些精靈的 transform.position.x 值以找到該區域的范圍。這就是為什么我不想使用帶小數的浮點數。
例如,如果我的右邊界在 10.25 的 transform.position.x 處,而左邊界在 -10.6 的 transform.position.x 處,那么我希望碎片能夠在以下任一位置生成:[-8, -7, -6 , ..., 0, 1, 2, ... 8]。我認為這將比讓它們以 -8 到 8 之間的任何可能的浮點值生成更清潔。
所以為了得到這個范圍,我計劃從 10.25 和 -10.6 中取 10 和 -10,加/減 2(以確保在產生碎片時它們不會與游戲區域的邊緣重疊),然后拉一個隨機 int下一個生成塊的 x 位置的范圍。
不幸的是,我找不到從 10.25 獲得 10 或從 -10.6 獲得 -10 的簡單方法。
最簡單的解決方案是將邊界設定為 x 10.0 和 x -10.0。但是我想要一個邊界不必位于這樣特定坐標的解決方案,即允許將精靈放置在 10.12 的 x 處,并在計算之前從 transform.x.position 的浮點值截斷小數更遠。
uj5u.com熱心網友回復:
您可以使用Mathf.FloorToInt或強制轉換為int. 如果您想知道哪個性能更高,請查看此答案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410962.html
標籤:
上一篇:如何使回圈作業而不不斷增加索引?
