[英]Any ideas on improving my item placement system in Unity C#?
這是我的系統:
在從清單中選擇的項目上->幽靈(半透明)對象被實例化並根據播放器和地形進行定位和旋轉
OnClick-> Ghost被破壞,並在其位置添加了預制件。
這個系統運作良好,看起來很棒...唯一的問題是玩家必須謹慎操作以使牆壁等直並與其他牆壁對齊。 該系統與Rust非常相似。 我希望玩家仍然可以將任何東西放置在他們想要的地方,但是:我希望系統在鬼魂緊貼另一堵牆並自動固定4堵牆上方的屋頂時對齊牆。
我對實現任何系統都沒有問題(我非常專業地了解C#)。 我只想知道最好的方法是什么?
我的想法是向對象添加盒碰撞器(作為觸發器),並使用OnTriggerEnter更改位置。 有更好/更清潔/更簡便的方法嗎?
您建議的這種方式很常見。 Kerbal Space Program使用這些“安裝點”正確地連接零件。
我將在通用的基礎上實現帶有標簽的安裝點系統,以便您可以輕松地使用此功能創建新對象。 就像您有一個安裝球(預制的?)一樣,此球始終有一個所屬的父級和一個觸發器,該觸發器可能基於父級的比例。 然后,此球具有一個標簽,以過濾掉任何其他不應卡緊到此的安裝球(例如,輪胎+牆=愚蠢的球)。
當具有相同標簽的另一個球與第一個球發生碰撞時,您應該根據父級狀態(例如,已經放置的牆可能具有物理引擎懸浮狀態,而另一個“保持”狀態)來決定是哪個捕捉到哪個捕捉玩家不會)。 之后,您只需將第二壁的球更改為第一壁的球變換即可。
如果保持足夠的通用性,則可以使用此安裝球輕松地裝飾任何物體。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.