簡體   English   中英

2D Unity游戲中的3D類

[英]3D Classes in a 2D Unity Game

我有很多針對3D游戲編寫的Unity腳本,這些腳本在2D游戲中很有用,而且我真的不想重新發明輪子來將它們添加到游戲中。 所以我的問題是,我可以在2D游戲中使用我當前的3D游戲腳本(使用Vector3s並調用Physics.Raycast(),Physics.Gravity等)(其中所有GameObjects都有像Collider2D和Rigidbody2D這樣的2D組件將使用其他腳本調用Physics2D .Raycast(), Physics2D .Gravity等)? 我猜我做到,但這樣做效率很低,所以我不妨重新實現2D類。 但我想先問一下。

謝謝你的幫助!

就像喬的評論一樣,你可以。 沒有問題,因為Unity 2D功能將采用vector2D,當Vector3D傳入它們時,z軸將被丟棄。

我的建議是使用相同的3D2D腳本,因為它使一切更容易使用。 例如,當您在3D腳本中進行大型游戲邏輯更改時,您必須在2D腳本中執行相同操作。 想要對2D或3D代碼進行故障排除時也會非常痛苦。 這是應該使用C# Preprocessor Directives地方。

#if USE2D
//Put your 2D specific API code
#else
//Put your 3D specific API code
#endif

現在,要測試2D代碼,只需將#define USE2D放在代碼的頂部即可。 當您想要對3D2D代碼進行故障排除時,這會很有用。 您只需注釋 #define USE2D來測試3D代碼並取消注釋以測試2D代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM