簡體   English   中英

關於改善我在Unity C#中的物品放置系統的想法嗎?

[英]Any ideas on improving my item placement system in Unity C#?

這是我的系統:

  1. 在從清單中選擇的項目上->幽靈(半透明)對象被實例化並根據播放器和地形進行定位和旋轉

  2. OnClick-> Ghost被破壞,並在其位置添加了預制件。

這個系統運作良好,看起來很棒...唯一的問題是玩家必須謹慎操作以使牆壁等直並與其他牆壁對齊。 該系統與Rust非常相似。 我希望玩家仍然可以將任何東西放置在他們想要的地方,但是:我希望系統在鬼魂緊貼另一堵牆並自動固定4堵牆上方的屋頂時對齊牆。

我對實現任何系統都沒有問題(我非常專業地了解C#)。 我只想知道最好的方法是什么?

我的想法是向對象添加盒碰撞器(作為觸發器),並使用OnTriggerEnter更改位置。 有更好/更清潔/更簡便的方法嗎?

您建議的這種方式很常見。 Kerbal Space Program使用這些“安裝點”正確地連接零件。

我將在通用的基礎上實現帶有標簽的安裝點系統,以便您可以輕松地使用此功能創建新對象。 就像您有一個安裝球(預制的?)一樣,此球始終有一個所屬的父級和一個觸發器,該觸發器可能基於父級的比例。 然后,此球具有一個標簽,以過濾掉任何其他不應卡緊到此的安裝球(例如,輪胎+牆=愚蠢的球)。

當具有相同標簽的另一個球與第一個球發生碰撞時,您應該根據父級狀態(例如,已經放置的牆可能具有物理引擎懸浮狀態,而另一個“保持”狀態)來決定是哪個捕捉到哪個捕捉玩家不會)。 之后,您只需將第二壁的球更改為第一壁的球變換即可。

如果保持足夠的通用性,則可以使用此安裝球輕松地裝飾任何物體。

暫無
暫無

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

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