Unity — 存取或輸入數據(用json)

更新於 發佈於 閱讀時間約 2 分鐘

我相信無人想聽我廢話,直接上代碼。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

public class Example : MonoBehaviour
{
[SerializeField] Odject odj;

//testing
private void Update()
{
if (Input.GetKeyDown(KeyCode.S))
{
Save();
}
if (Input.GetKeyDown(KeyCode.L))
{
Import();
}
}

[System.Serializable]
public class Odject
{
public int i;
}

public void Save()
{
string strOutput = JsonUtility.ToJson(odj);
File.WriteAllText(Application.dataPath + "/Data.json", strOutput);
}

public void Import()
{
string strOutput = File.ReadAllText(Application.dataPath + "/Data.json");
odj = JsonUtility.FromJson<Odject>(strOutput);
}
}

詳細解釋

我看了很多教程關於 json,不過他們不是寫得太過複雜或不知其所以然,所以有這篇文章的誕生。要做到這種效果,最重要的要掛載 System.IO 。System.IO能允許讀取和寫入檔案。

  • 當儲存資料,即要寫入資料,所以要用 File.WriteAllText(string Path, string Contents)。
  • 當拿資料,即要讀取資料,所以要用 File.ReadAllText(string Path)。

之後要用到 Unity 官方開發的工具-- JsonUtility。

  • ToJson — 可以理解成將 class 變成 json 格式。
  • ForJson — 可以理解成按照這個 class 呈現出來。

如果有問題的話可以留言,我識的一定會答。想要了解我更多的話可以追蹤我的 IG

Twitter


avatar-img
0會員
7內容數
這裏分享我遊戲開發的記錄,亦會分享開發的小技巧。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
夏葉 的其他內容
緣由 生成一個格子是一件十分之簡單的事,但我不知道為甚麼每一次重新寫的時候,都會忘記如何寫。所以我在這裏記錄一下。 代碼 public float num; public GameObject currentGameObject; void Update() { if(Input.G
這篇文章深入探討如何利用 Lerp 來實現物體的移動,並介紹透過 Slerp 來獲得更流暢的移動效果。以簡化移動的實現過程。文章將比較 Update 和 IEnumerator 兩種方案,並指導讀者如何設定速度、加速度及移動時間,提供全面的學習資源以助於更佳理解,尤其是對於遊戲開發者。
從個連結中下載這個資料夾 https://github.com/h8man/NavMeshPlus 打開剛下載的資料夾,然後將一個名 NavMeshComponents 的資料夾放入你的 Unity 中。 創建一個 Square,作為平面,新增一個名為 Navigation Modifier 的
Text Mesh Pro 是 Unity 內自置的 UI 文字系統。如果你已經用了 Unity 很多年的人會好奇,它和 Text 有甚麼的分別。總括來講 Text Mesh Pro 更加的靈活和可以做更多不同的變化。 Sprite Asset Sprite Asset 以簡單來說是 emoji
前言 這篇文章會講解如何拖曳 3D 物件。我的代碼實現了二個主要的功能就是拖曳和限制拖曳的方式。不廢話直上代碼。 using UnityEngine; public class Move : MonoBehaviour { private Vector3 _offset; pr
緣由 生成一個格子是一件十分之簡單的事,但我不知道為甚麼每一次重新寫的時候,都會忘記如何寫。所以我在這裏記錄一下。 代碼 public float num; public GameObject currentGameObject; void Update() { if(Input.G
這篇文章深入探討如何利用 Lerp 來實現物體的移動,並介紹透過 Slerp 來獲得更流暢的移動效果。以簡化移動的實現過程。文章將比較 Update 和 IEnumerator 兩種方案,並指導讀者如何設定速度、加速度及移動時間,提供全面的學習資源以助於更佳理解,尤其是對於遊戲開發者。
從個連結中下載這個資料夾 https://github.com/h8man/NavMeshPlus 打開剛下載的資料夾,然後將一個名 NavMeshComponents 的資料夾放入你的 Unity 中。 創建一個 Square,作為平面,新增一個名為 Navigation Modifier 的
Text Mesh Pro 是 Unity 內自置的 UI 文字系統。如果你已經用了 Unity 很多年的人會好奇,它和 Text 有甚麼的分別。總括來講 Text Mesh Pro 更加的靈活和可以做更多不同的變化。 Sprite Asset Sprite Asset 以簡單來說是 emoji
前言 這篇文章會講解如何拖曳 3D 物件。我的代碼實現了二個主要的功能就是拖曳和限制拖曳的方式。不廢話直上代碼。 using UnityEngine; public class Move : MonoBehaviour { private Vector3 _offset; pr
你可能也想看
Google News 追蹤
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
Lua 開檔寫檔的運用 io.output()...
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {
Thumbnail
支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。 映射關係 table->struct record->object field->attribute 安裝 go get github.com/astaxie/beego/orm​ go get github.com
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
/ 大家現在出門買東西還會帶錢包嗎 鴨鴨發現自己好像快一個禮拜沒帶錢包出門 還是可以天天買滿買好回家(? 因此為了記錄手機消費跟各種紅利優惠 鴨鴨都會特別注意銀行的App好不好用! 像是介面設計就是會很在意的地方 很多銀行通常會為了要滿足不同客群 會推出很多App讓使用者下載 每次
Thumbnail
我們在學習kafka的過程中最不習慣的就是不管什麼樣的資料, 在kafka的傳輸過程都會是binary的資料格式, 因此我們在撰寫程式的過程中並不是那麼的直觀, 必須將資料從float、int…資料型態轉型成binary才能順利傳送, 那麼基於這樣的前提之下, python這套程式語言可以怎麼做
Thumbnail
Lua 開檔寫檔的運用 io.output()...
※ 單例模式介紹 ※ 定義:單例模式是一種設計模式,確保一個class(類)只有一個實例,並提供一個存取它的全域存取點。無論如何取值,皆只對這個實例取值。 ※ 目的:保證一個類別只會產生一個物件,而且提供存取該物件的統一方法。 ※ 講解:單例模式確保一個類無論怎麼 new 或 get,都只能拿
Thumbnail
本章節旨在介紹 TypeScript 的基本資料型別,包括內建型別、型別轉換、自訂型別、元組、集合、陣列、和字典型別。透過理解和使用這些型別,可以提高代碼的可讀性和可維護性。
解讀JSON 字串 首先,你需要使用 Python 的 json 模組來解讀JSON 字串。 JSON的基本結構: 由花括號 {} 包圍,內部是鍵值對的集合,每個鍵值對之間用逗號分隔。 鍵是字串類型,值可以是任何JSON支持的資料類型(字串、數字、布林值、陣列、物件或 null)。 {
Thumbnail
支援Go所有的類型儲存,且可以用原生SQL敘述與跨資料庫查詢。 映射關係 table->struct record->object field->attribute 安裝 go get github.com/astaxie/beego/orm​ go get github.com
Thumbnail
JSON 格式因為其輕巧、易於讀寫的特性,所以普遍應用於數據儲存。本文將介紹如何使用 Python 來讀取、處理、解析和修改 JSON 檔案。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val