2016-12-01 214 views
0

我試圖做一個基本的RTS,但我不知道我可以在哪裏存儲數據,例如單位,建築物等。我想避免製作數百個.txt文件(或一個非常大的.txt文件)。那麼,我可以只寫一個包含每個對象類的頭文件,但不會太多?我的意思是,如果我製作大約20個具有類似屬性(範圍,攻擊價值,健康等)的單位(當然總數),並且只有不同的特殊能力,我認爲將所有內容設置在20個構造函數中是很奇怪的,不是嗎?何處存儲實時策略數據?

另一個問題是存儲地圖。我想我會在這裏嘗試.txt解決方案,但是我可能會在WinAPI中編寫某種地圖編輯器,或者像這樣,將地圖設置爲.txt文件將是一種折磨。所以我知道如何表示瓷磚(我想要地圖是平鋪的,實現起來會容易得多,但我認爲),但如果有一個單元需要多於一個瓷磚,我該如何處理這個?

+1

太多的問題,太多可能的有效答案。您可能需要閱讀有關RTS的更多內容/文章,如果您不知道從哪裏開始,或者只是失去時間,則不要開始。對於數據,你可以從XML開始。 – FLX

+0

我的投票也適用於XML。而對於跨越多個瓦片的單位,不要麻煩記錄他們。只需記錄中心位置和方向,並確定再次加載地圖時填充的圖塊。不幸的是,這個問題不適合堆棧溢出 - 我認爲在提出問題之前,您需要在開發週期中稍微進一步。 – Serlite

+0

或嘗試http://gamedev.stackexchange.com/ – FLX

回答

0

Txt和XML不是很好的解決方案,而且從磁盤寫入和讀取也不是實時可以實現的最便宜的操作。在Unity中做到這一點的方法是通過序列化,基本上你編寫了一個類,允許你存儲數據,而不用爲它實例化一個GameObject,並且只要你願意,你可以在運行時保存或加載它。 Unity教程頁面上還有一個關於數據持久性的好教程。 (Link Here

+0

哦,這個看起來很有趣!看起來像加載和保存地圖的好選擇。真的很喜歡這個,謝謝!它甚至允許我製作遊戲中的地圖編輯器(當然是簡單的,沒有任何先進的)。 – Executor1909

+0

我差點忘了!有關於你可以用序列化對象做的所有事情的[THIS](https://www.youtube.com/watch?v=VBA1QCoEAX4&t=1724s)偉大的視頻,我強烈建議你看一看!一旦你有了你的序列化數據,Unity有無數的工具可以讓你構建你自己的編輯工具,基本的或高級的工具都是由你自己決定的!祝你好運! (並且不要忘記將正確答案標記爲解決方案!) – FreeFly

0

我強烈推薦Easy Save插件。我會設置它,因此它每隔幾秒只保存到磁盤,而不是一個常量流。此外,通過Easy Save,您可以只保存一小段文件到一個更大的保存文件,而不是每次都保存一切。如果遊戲崩潰,您可能會失去幾秒鐘的進度,但在崩潰或退出的情況下,這應該是可以接受的損失。