是否可以將C#的內置Vector3結構更改爲不使用浮點數單選,而是出於性能原因使用整數或字節?Vector3非浮點?
1
A
回答
5
您需要根據整數或字節操作製作自己的Vector3
結構。這是完全可能的,因爲沒有一個「內置」Vector3
(框架中有多個3D矢量實現)。
但是,如果您打算在框架API調用中使用它,則需要轉換爲框架版本。
3
您可以製作自己的Vector3或使用Tuple。
但是,如果您打電話預期爲Vector3
,他們將而不是預計您的類型。在這種情況下,您必須使用標準Vector3
。
+0
請注意,框架Tuple類型都是類,而不是結構。根據目標,這可能不合適...... –
1
正如已經指出的那樣,您不能更改任何現有類型(包括Vector3d)爲其成員使用不同的類型(除非它是通用的並且旨在這樣做)。您需要自行創建(確保知道class
和struct
之間的差異)。
如果關注績效,您需要針對您的具體情況嘗試並認真衡量 - 這種變化是否會帶來顯着的節省是非常不明確的。
將float更改爲int將不會給您節省空間,並且可能會使計算複雜化(例如,1.5 * 1.5在浮點型中很容易,而如果使用縮放型int,則需要額外的操作15 * 15/100和sin/cos用於旋轉也許不能很好地工作)。
將浮點數更改爲字節將爲您節省空間,但數學將更加複雜,並且始終強制將所有操作轉換爲int。
相關問題
- 1. 我如何使用vector3作爲浮點變量?
- 2. 將Vector3轉換爲在Unity中浮動
- 3. 存儲非負浮點值
- 4. Vector3點集合中的隨機點
- 5. Vector3.normalize();
- 6. 對齊和非默認浮點表示
- 7. 如何忽略非浮點值
- 8. 如何提取intersectObjects的相交點(Vector3)?
- 9. 統一的浮動轉換成的Vector3 C#
- 10. 在非科學記號中打印浮點數或雙精度浮點數
- 11. 非常大的浮點數會導致非確定性嗎?
- 12. C++:Vector3型「牆」?
- 13. XNA - Scale Direction Vector3
- 14. yz Vector3到Vector2
- 15. Vector3 Lerp旋轉
- 16. 錯誤:Vector3,Float
- 17. 浮點
- 18. Vector3.Lerp不工作
- 19. Vector3 in Meep in Python
- 20. 浮點運算和浮點值比較
- 21. 聲明浮點數或浮點數嗎?
- 22. 在浮點數中存儲浮點數?
- 23. 定點到浮點
- 24. C#定點浮點
- 25. 浮點指令
- 26. 浮點文字
- 27. 問題浮點
- 28. 浮點數
- 29. 浮點異常?
- 30. 浮點運算
可能會更改爲*換出*? No. – user7116