Unity 3d 用JSON 文字控制程式

2021-07-11 23:53:02 字數 2509 閱讀 1859

本次的作業是,修改飛碟程式。它使用以下 json 文字控制程式(你可以自由新增內容)

1、遠端控制目錄(有四個json檔案)

game_info.json -

disk_level_1.json -

2、修改飛碟程式,並發布

由於我是二年級生,所以很多大的思路都**於大三師兄的部落格。

尤其是胡江川師兄。他的部落格寫的十分的完整、易懂。所以這門課在他的部落格上面我真的是受益匪淺。

傳送門:simba的部落格

好了我們來看下這一次的作業。要求用json檔案來儲存遊戲的資訊。這是乙個在實際遊戲中常見,也是十分重要的功能。這一次我們用json簡單地模擬一下其讀寫。

其中儲存了每一關的資訊。包括飛碟的顏色,發射的位置,發射的方向,發射的速度,第幾回合等等。根據這些資訊在初始化的時候我們就可以直接讀取json檔案,提取相應資訊,賦值即可。

建立完json檔案之後我們要考慮的問題就是如何將json檔案變成data.根據課上的內容以及一些文件的提示。

首先我們建立乙個filemanager.cs的指令碼

可以通過如下的方法拿到我們的資料:

// 輸入關卡檔名,啟動協程讀取檔案  

public

void

loadleveljson(string name)

ienumerator loadlevel()

}

public void stagelevel(string json)

同樣的方法適用於disk_level_1.json

這樣子我們就完成了filemanager.cs檔案。將其掛載主攝像機上。

[serializefield] attribute

強制unity去序列化乙個私有域

這是乙個內部的unity序列化功能,有時候我們需要serialize乙個private或者protected的屬性,這個時候可以使用[serializefield]這個attribute:

在unity最新的ui系統中,ui屬性上方全部新增[serializefield] ,如下所示

[serializefield]

private button btn1;

serializefield參考文件:

因此,我們在scenecontroller中gameinfo和disklevel進行序列化

[serializefield]

public

class gameinfo

}[serializefield]

public

class leveldata

}

拿到game_info的資料後肯定要顯示在主介面上。

我們將這些資料都寫在我們的控制器中,並將其置為public變數。

public

string _version;

public

int _totalround;

public color color;

然後在ui中對text進行賦值

小小的遊戲展示:可以看到顯示了json檔案儲存的內容,

Unity3D 通過JSON查詢天氣

獲取天氣資訊,首先要找到提供天氣資料的介面,我使用的是高德地圖免費為我們提供的,為 使用的前提是註冊乙個高德賬號用來獲取返回引數中所需要的key,步驟很簡單,按照 中的提示來就可以了。獲取網路資料,需要用到unitywebrequest類,通過它的get方法可以得到 中的資訊,返回的是含有uri中資...

Unity3D開發(九) Unity3d流光效果

遊戲開 壇 hello game 遊戲開發群 201276069 之前曾經注意過material 中紋理的屬性都有 tiling 和offset 但沒有深究過其用途,今天才知道竟然可以利用 offset做uv 動畫,從而完成各種有趣的動畫,比如流光效果!流過效果即通常一條高光光在物體上劃過,模擬高光...

Unity3D 文字輸入正則規範使用

網路遊戲在註冊賬號時,需要對新的賬戶名和密碼進行規範。這裡記錄一些常用的檢測方法 1,純數字檢測 public string a 0 9 2,11位手機號碼 1開頭 public string b 1 d 3,數字或英文 public string c a za z0 9 4,純漢字 public ...