前言:學(xué)習(xí)數(shù)據(jù)開始~
1.PlayerPrefs類(是數(shù)據(jù)持久化的類,像游戲中的存檔啊什么的)
(1)是個靜態(tài)類,所以可以類名.調(diào)用此類里面的方法
(2)修改數(shù)據(jù):類名.SetXXX(鍵,值)
<1>XXX可以是Int、Float、String三個類型中的任意一個
<2>鍵,是一個字符串類型的值
<3>值,是一個與XXX類型對應(yīng)的值,我們修改這個值,這個值與鍵是對應(yīng)的
(3)讀取數(shù)據(jù):類名.GetXXX(鍵,值)
<1>鍵,是一個字符串類型的值,相當(dāng)于我們查找的時候用的索引,我們在Get的時候,只需要把鍵的值放在GetXXX方法中的參數(shù)位置就可以查找到跟鍵相對應(yīng)的值
<2>值,是一個默認(rèn)的值,可以不寫這個參數(shù),默認(rèn)是0;寫了的話,就是默認(rèn)的值就你寫的值,
<4>這個值是可以通過Set修改的,一旦修改就是修改的值,關(guān)掉程序依舊存在,修改完之后把Set的語句刪除也還是修改完之后的值,不會影響,除非你使用刪除方法
(4)判斷是否存在鍵:類名.HasKey(鍵)
(5)刪除數(shù)據(jù):類名.DeleteKey(鍵)
(6)當(dāng)該鍵沒有Set的時候,我們使用Get去得到數(shù)據(jù)有以下幾種情況:
<1>如果Get方法中沒有寫默認(rèn)值,該鍵中存儲的是相應(yīng)類型的默認(rèn)值(float、int的默認(rèn)值是0,string的默認(rèn)值是null)
<2>如果Get方法中寫了默認(rèn)值,那么該鍵中存儲的就是這個默認(rèn)值
(7)一般數(shù)據(jù)讀取用在初始化數(shù)據(jù)的Start開始方法中,而修改數(shù)據(jù)一般放在Update更新方法中

2.TXT
(1)主要寫了創(chuàng)建文件、讀取文件、刪除文件
(2)using System.IO; ? //對文件輸入輸出操作的命名空間
<1>StreamWrite類(寫入流)
1)以行的形式寫入信息:對象.WriteLine(信息);
2)關(guān)閉寫入流:對象.Close();
3)銷毀寫入流:對象.Dispose();
<2>StreamReader類(讀取流)
1)關(guān)閉讀取流:對象.Close();
2)銷毀讀取流:對象.Dispose();
<3>File靜態(tài)類
1)刪除文件:類名.Delete(文件絕對路徑);
2)是否存在文件:類名.Exists(文件絕對路徑);
3)創(chuàng)建文本:類名.CreateText(文件絕對路徑);
4)添加文本:類名.AppendText(文件絕對路徑);
<4>FileInfo類(文本)
1)文本是否存在:對象.Exists
2)創(chuàng)建文本:對象.CreateText();
3)添加文本:對象.AppendText();
4)打開文本:對象.OpenText();
(3)異常
<1>try{需要檢查是否存在異常的代碼塊}catch(System.Exception){捕獲到異常之后進行的操作}
(4)ArrayList (通過集合讀取每一行的信息)
<1>添加元素:對象.Add(添加的元素);
(5)using UnityEditor;
<1>刷新Unity編輯界面:AssetDataBase.Refresh();
(6)判斷平臺做出對應(yīng)處理
<1>方法一:預(yù)編譯處理、預(yù)編譯命令、宏命令
#if。。。#endif
<2>判斷程序的平臺是否是當(dāng)前在運行的平臺:
1)程序的平臺:Application.platform
2)運行的平臺:RuntimePlatform.枚舉成員(不同的平臺)
(7)數(shù)據(jù)路徑:Application.dataPath
在不同的平臺上的結(jié)果不同:
Unity 編輯器:<工程文件夾的路徑>/Assets
Mac播放器:<到播放器應(yīng)用的路徑>/Contents
iPhone播放器:<到播放器應(yīng)用的路徑>//Data
Win播放器:< 包含可執(zhí)行播發(fā)器的文件夾的路徑>\Data
網(wǎng)絡(luò)播放器:到播放器數(shù)據(jù)文件夾的絕對路徑(沒有實際的數(shù)據(jù)文件名稱)
Flash: 到播放器數(shù)據(jù)文件夾的絕對路徑(沒有實際的數(shù)據(jù)文件名稱)
借鑒文章:http://wiki.ceeger.com/script:unityengine:classes:application:application.datapath
(6)File和FileInfo的區(qū)別
File是靜態(tài)類,對應(yīng)整個文件系統(tǒng)進行操作,方法均為靜態(tài)方法,如果只對文件進行少量的操作,如判斷文件是否存在,或者對很多文件進行操作, 建議使用File類,因為可以避免頻繁的創(chuàng)建和釋放對象,可以減少系統(tǒng)的開銷,
?FileInfo是普通類,它對應(yīng)一個具體的文件進行操作,方法大部分是普通方法,它里面的操作可能也調(diào)用了File靜態(tài)類的方法,如果只對一個文件進行大量操作,建議使用FileInfo類
在安全檢查方面,通過File類去調(diào)用的方法,都要占用CPU一定的時間進行安全檢查,即使使用File類不同的方法重復(fù)的對一個文件進行訪問時,也是如此。而FileInfo類只在創(chuàng)建對象時,執(zhí)行一次安全檢查

3.CSV
(1)右擊桌面背景創(chuàng)建Excel文件

(2)在里面輸入內(nèi)容,中間空幾行,以備后用,凡事留一線

(3)點擊文件,另存為,選擇另存為的路徑(切記這里不能直接強制把Excel文件的文件擴展名修改成csv或txt類型的,因為xlsx類型是以二進制格式進行存儲的,csv和txt類型是以文本格式進行存儲的,不同類型強制更改文件擴展名,打開會出現(xiàn)亂碼)


(4)保存類型選擇CSV UTF-8(逗號分隔),點擊保存,會提示你是否修改格式點擊是


(5)為了方便觀察,我們把文件的文件擴展名顯示出來

(6)首先文件圖標(biāo)不同,其次文件擴展名不同,其三.xlsx是以二進制格式存儲,.csv是以文本格式存儲

(7)因為csv和txt都是文本存儲格式,所以我們可以直接強制把csv類型更改成txt類型




(8)更改之后,打開是這個樣子,每一列以逗號分隔開

(9)把Test.txt文本拖到Unity編輯器中
(10)代碼控制:通過行數(shù)和列名找到要找的信息
這里如果是用的動態(tài)加載則需要在Unity編輯器中創(chuàng)建Resources文件夾,在代碼中寫的路徑要跟Unity編輯器中的Resources文件夾底下的路徑對應(yīng)上,不然會找不到目標(biāo)文件
<1>TextAsset類
1)顯示文本信息:對象.text
2)切割字符串:字符串對象.Split(以一個字符串切割);
<2>字符串?dāng)?shù)組:string[] 數(shù)組名
<3>字符串交錯數(shù)組:string[][] 數(shù)組名
<4>其他類型轉(zhuǎn)換成string類型:
方法一:string 對象名=其他類型的對象名.ToString();
方法二:string 對象名=string.Format("占位符",其他類型的對象名);
<5>轉(zhuǎn)換類型:轉(zhuǎn)換的類型.Parse(被轉(zhuǎn)換的類型);
<6>單例模式:
1)聲明一個單例:public static 此腳本類型 對象;
2)單例對象實例化為掛載此腳本的游戲?qū)ο?;對?this;
3)單例的使用:通過其他腳本中>>腳本名.單例對象.腳本中方法>>調(diào)用這個方法


(11)隨便把腳本掛載到一個游戲?qū)ο笊砩?,然后運行就會在控制臺打印出信息
4.JSON
(1)簡介
JSON 指的是 JavaScript 對象表示法(JavaScriptObjectNotation)
JSON 是輕量級的文本數(shù)據(jù)交換格式
JSON 獨立于語言:JSON 使用 Javascript語法來描述數(shù)據(jù)對象,但是 JSON 仍然獨立于語言和平臺。JSON 解析器和 JSON 庫支持許多不同的編程語言。 目前非常多的動態(tài)(PHP,JSP,.NET)編程語言都支持JSON。
JSON 具有自我描述性,更易理解
參考網(wǎng)址:http://www.runoob.com/json/json-tutorial.html
JSON 是純文本
JSON 具有"自我描述性"(人類可讀)
JSON 具有層級結(jié)構(gòu)(值中存在值)
JSON 可通過 JavaScript 進行解析
JSON 數(shù)據(jù)可使用 AJAX 進行傳輸
(2)語法
<1>JSON 語法規(guī)則
JSON 語法是 JavaScript 對象表示法語法的子集。
1)數(shù)據(jù)在名稱/值對中
2)數(shù)據(jù)由逗號分隔
3)大括號保存對象
4)中括號保存數(shù)組
<2>JSON 名稱/值對
JSON 數(shù)據(jù)的書寫格式是:名稱/值對。
名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值
<3>JSON 值
JSON 值可以是:
1)數(shù)字(整數(shù)或浮點數(shù))
2)字符串(在雙引號中)
3)邏輯值(true 或 false)
4)數(shù)組(在中括號中)
5)對象(在大括號中)
6)null
(3)使用
<1>創(chuàng)建一個Plugins(插件)文件夾,系統(tǒng)會先執(zhí)行它里面的東西,比Awake方法之前執(zhí)行,引用LitJson.dll文件,放在Plugins文件夾下

<2>選中LitJson,勾選上Any Platform(所有平臺)

<3>通過代碼:寫入Json文本到文件、讀取Json文本、從文件中讀取Json文本
用字符串類型的一個對象來接收J(rèn)son文本,用@取消轉(zhuǎn)義
1)調(diào)用json操作的命名空間:using LitJson;
1.1)JsonMapper類
1.1.1)Json字符串轉(zhuǎn)換成對象,用JsonData類型的對象接收:JsonMapper.ToObject(字符串對象);
1.1.2)對象轉(zhuǎn)換成Json對象,用string類型的對象接收:JsonMapper.ToJson(對象);
1.2)JsonData類
1.2.1)讀取一個對象的值:對象[鍵]
1.2.2)讀取一個對象的某個數(shù)組元素中的值:對象[數(shù)組鍵][數(shù)組元素的索引值][當(dāng)前數(shù)組元素的鍵]
1.2.3)讀取一個對象的數(shù)組元素的個數(shù):對象[數(shù)組鍵].Count
1.3)JsonWriter類
1.3.1)開始寫入一組數(shù)據(jù):對象.WriteObjectStart();
1.3.2)結(jié)束寫入一組數(shù)據(jù):對象.WriteObjectEnd();
//以上相當(dāng)于Json文本中的一對花括號
1.3.3)鍵:對象.WritePropertyName(鍵);
1.3.4)值:對象.Write(值);
//以上相當(dāng)于Json文本中的一組鍵值對,先寫鍵再寫值
1.3.5)開始寫入數(shù)組:對象.WriteArrayStart();
1.3.6)結(jié)束寫入數(shù)據(jù):對象.WriteArrayEnd();
//以上相當(dāng)于Json文本中的一組方括號
2)調(diào)用System.Text的命名空間:using System.Text;
2.1)StringBuilder類(修改字符串)
2.1.1)String 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在內(nèi)存中創(chuàng)建一個新的字符串對象,這就需要為該新對象分配新的空間。在需要對字符串執(zhí)行重復(fù)修改的情況下,與創(chuàng)建新的 String 對象相關(guān)的系統(tǒng)開銷可能會非常昂貴。如果要修改字符串而不創(chuàng)建新的對象,則可以使用 System.Text.StringBuilder 類。
相關(guān)StringBuilder文章:www.jb51.net/article/45832.htm
3)調(diào)用System.IO的命名空間:using System.IO;
3.1)DirectoryInfo類
3.1.1)給對象實例化所在路徑構(gòu)造方法:new DirectoryInfo(路徑);
3.1.2)是否存在:對象.Exists
3.1.3)創(chuàng)建目錄:對象.Create();
3.2)SteamWriter類
3.2.1)寫入數(shù)據(jù)信息:對象.WriteLine(信息對象);
3.2.2)關(guān)閉寫入流:對象.Close();
3.3.3)銷毀寫入流:對象.Dispose();
3.3)File類
3.3.1)編輯文本:對象.AppendText(絕對路徑);
3.3.2)創(chuàng)建文本:對象.CreateText(絕對路徑);

5.XML
5.1XML概念
XML 指可擴展標(biāo)記語言(eXtensibleMarkupLanguage)。
XML 被設(shè)計用來傳輸和存儲數(shù)據(jù)。
HTML 則被設(shè)計用來顯示數(shù)據(jù)。
XML 是獨立于軟件和硬件的信息傳輸工具。
XML 是各種應(yīng)用程序之間進行數(shù)據(jù)傳輸?shù)淖畛S玫墓ぞ摺?/p>
5.2XML用途
XML 應(yīng)用于 Web 開發(fā)的許多方面,常用于簡化數(shù)據(jù)的存儲和共享。
(1)XML 把數(shù)據(jù)從 HTML 分離
如果您需要在 HTML 文檔中顯示動態(tài)數(shù)據(jù),那么每當(dāng)數(shù)據(jù)改變時將花費大量的時間來編輯 HTML。
通過 XML,數(shù)據(jù)能夠存儲在獨立的 XML 文件中。這樣您就可以專注于使用 HTML/CSS 進行顯示和布局,并確保修改底層數(shù)據(jù)不再需要對 HTML 進行任何的改變。
通過使用幾行 JavaScript 代碼,您就可以讀取一個外部 XML 文件,并更新您的網(wǎng)頁的數(shù)據(jù)內(nèi)容。
(2)XML 簡化數(shù)據(jù)共享
<1>在真實的世界中,計算機系統(tǒng)和數(shù)據(jù)使用不兼容的格式來存儲數(shù)據(jù)。
XML 數(shù)據(jù)以純文本格式進行存儲,因此提供了一種獨立于軟件和硬件的數(shù)據(jù)存儲方法。
這讓創(chuàng)建不同應(yīng)用程序可以共享的數(shù)據(jù)變得更加容易。
(3)XML 簡化數(shù)據(jù)傳輸
<1>對開發(fā)人員來說,其中一項最費時的挑戰(zhàn)一直是在互聯(lián)網(wǎng)上的不兼容系統(tǒng)之間交換數(shù)據(jù)。
由于可以通過各種不兼容的應(yīng)用程序來讀取數(shù)據(jù),以 XML 交換數(shù)據(jù)降低了這種復(fù)雜性。
(4)XML 簡化平臺變更
<1>升級到新的系統(tǒng)(硬件或軟件平臺),總是非常費時的。必須轉(zhuǎn)換大量的數(shù)據(jù),不兼容的數(shù)據(jù)經(jīng)常會丟失。XML 數(shù)據(jù)以文本格式存儲。這使得 XML 在不損失數(shù)據(jù)的情況下,更容易擴展或升級到新的操作系統(tǒng)、新的應(yīng)用程序或新的瀏覽器。
(5)XML 使您的數(shù)據(jù)更有用
<1>不同的應(yīng)用程序都能夠訪問您的數(shù)據(jù),不僅僅在 HTML 頁中,也可以從 XML 數(shù)據(jù)源中進行訪問。通過 XML,您的數(shù)據(jù)可供各種閱讀設(shè)備使用(掌上計算機、語音設(shè)備、新聞閱讀器等),還可以供盲人或其他殘障人士使用。
(6)XML 用于創(chuàng)建新的互聯(lián)網(wǎng)語言
<1>很多新的互聯(lián)網(wǎng)語言是通過 XML 創(chuàng)建的。
5.3XML樹結(jié)構(gòu)
XML 文檔形成了一種樹結(jié)構(gòu),它從"根部"開始,然后擴展到"枝葉"。
5.4XML語法
(1)XML 必須包含根元素,它是所有其他元素的父元素
(2)XML 聲明文件的可選部分,如果存在需要放在文檔的第一行
(3)在 XML 中,省略關(guān)閉標(biāo)簽是非法的。所有元素都必須有關(guān)閉標(biāo)簽
(4)XML 標(biāo)簽對大小寫敏感。必須使用相同的大小寫來編寫打開標(biāo)簽和關(guān)閉標(biāo)簽
(5)在 XML 中,所有元素都必須彼此正確地嵌套。
(6)在 XML 中,XML 的屬性值必須加引號。
(7)在 XML 中,一些字符擁有特殊的意義。
如果您把字符 "<" 放在 XML 元素中,會發(fā)生錯誤,這是因為解析器會把它當(dāng)作新元素的開始.
為了避免這個錯誤,請用實體引用來代替 "<" 字符

(8)XML 中的注釋:<!--注釋的內(nèi)容-->
(9)在 XML 中,空格會被保留,在 XML 中,文檔中的空格不會被刪減。
(10)XML 以 LF 存儲換行
<1>在 Windows 應(yīng)用程序中,換行通常以一對字符來存儲:回車符(CR)和換行符(LF)。
<2>在 Unix 和 Mac OSX 中,使用 LF 來存儲新行。
<3>在舊的 Mac 系統(tǒng)中,使用 CR 來存儲新行。
<4>XML 以 LF 存儲換行
(11)XML 元素:指的是從(且包括)開始標(biāo)簽直到(且包括)結(jié)束標(biāo)簽的部分。
5.5代碼:
學(xué)習(xí):創(chuàng)建XML、添加XML、更改XML、讀取XML

命名空間:
(1)using System.Xml;
類:XmlDocument(XML文檔)、XmlNode(XML節(jié)點)、XmlElement(XML元素節(jié)點)、XmlNodeList(XML節(jié)點集合)
<1>XmlDocument
1)對象.CreateXmlDeclaration(版本號,所使用的編碼,null);
2)把一個XmlNode類型的對象添加到對象當(dāng)中:對象.AppendChild(節(jié)點對象);
3)創(chuàng)建一個元素節(jié)點:對象.CreateElement(元素節(jié)點的名字);
4)保存文檔:對象.Save(保存的路徑);
5)加載文檔:對象.Load(加載的路徑);
6)選擇單個節(jié)點:對象.SelectSingleNode(節(jié)點的名字);
7)查找單個節(jié)點的所有子節(jié)點:對象.SelectSingleNode(節(jié)點的名字).ChildNodes;
<2>XmlNode
1)把其他節(jié)點添加到此節(jié)點中,作為此節(jié)點的子節(jié)點:此節(jié)點對象.AppendChild(其他節(jié)點);
<3>XmlElement
1)創(chuàng)建屬性:對象.SetAttribute(屬性名字,屬性值);
2)創(chuàng)建文本節(jié)點:對象.InnerText=文本信息;
<4>XmlNodeList
(2)using System.IO;
類:File(靜態(tài)類)
<1>File
1)是否存在:File.Exists(路徑)
(3)using UnityEditor;
類:AssetDatabase(靜態(tài)類)
<1>AssetDatabase
1)刷新Unity編輯器界面:AssetDatabase.Refresh();
(4)創(chuàng)建XML:把腳本隨便掛載到游戲?qū)ο笊砩?點擊運行,點擊game窗口,按下A鍵時,5.xml的目錄中多了一個ChatData.xml文件,文件內(nèi)容如圖

(5)添加XML:繼續(xù)按下B鍵,右擊工程視圖,點擊Refresh刷新,ChatData中的內(nèi)容多了一部分

(6)更改XML:繼續(xù)按下C鍵,右擊菜單刷新,發(fā)現(xiàn)紅框部分更改了

(7)讀取XML:繼續(xù)按下D鍵,控制臺打印了節(jié)點的屬性name的值和節(jié)點的文本節(jié)點

(8)XML數(shù)據(jù)生成步驟
<1>引進C#的命名空間System.Xml
<2>生成XML文檔(XmlDocument類)
<3>生成根元素(XmlElement類)添加給文檔對象
<4>循環(huán)生成子元素添加給父元素
<5>將生成的XML文檔保存
6.SQL
增、改、查、刪
(1)SQL編輯器安裝
點擊SQL安裝包,依次默認(rèn)點擊即可




此時,我們的安裝目錄下就會多出SQL編輯器的軟件

(2)新建一個數(shù)據(jù)庫文本
<1>雙擊SQL編輯器圖標(biāo)打開編輯器,彈出窗口點擊ok

<2>創(chuàng)建一個新的數(shù)據(jù)庫

<3>選擇文件保存的位置以及保存的文件名稱

(3)通過SQL編輯器添加列表以及列名
<1>點擊Design,點擊左下角的加號

<2>彈出窗口,我們把Table Name(表名)改為user,點擊加號添加表中的列,下方的窗口顯示的是對應(yīng)的SQL語句

<3>雙擊要修改的地方可以修改,Type右邊有個下拉菜單可以選擇數(shù)據(jù)類型,上面的修改也會影響下面的SQL語句

<4>在表中添加5個列,分別修改列的值類型,點擊創(chuàng)建

<5>此時列表如圖

(4)通過SQL語句添加列表以及列名
<1>點擊SQL,輸入創(chuàng)建列表的SQL語句>>create table "列表名"("列名1" 列值類型1,"列名2" 列值類型2,·····,"列名n" 列值類型n);
<2>點擊Execute,左下角顯示對號,說明運行成功
<3>引號加與不加無影響

<3>點擊Design,多了一個名為guest的table,點擊guest,也有添加的列名,對應(yīng)下面的窗口中的SQL語句跟剛剛寫的SQL語句相同

(5)通過SQL編輯器添加值
<1>點擊Data,點擊user,點擊加號
<2>彈出窗口,分別點擊每一行的列名在下方的窗口里添加內(nèi)容,注意內(nèi)容要與后面的數(shù)據(jù)類型相匹配,添加完所有列的值(也就是一行的值),這里必須要添加所有的值才能添加,最后點擊保存

<3>完成后的界面

(6)通過SQL語句添加值
<1>點擊SQL,輸入添加值的SQL語句>>insert into "列表名" (列名1,列名2,······,列名n) values(列值1, 列值2,·····, 列值n);
如果不寫列名,默認(rèn)是全部列名
<2>點擊Execute執(zhí)行SQL語句


(7)通過編輯器修改值
點擊要修改的地方,會彈出一個窗口,把里面的值改為你想要的,然后Update修改更新


(8)通過SQL語句修改值
<1>點擊SQL,輸入修改值的SQL語句>>update "列表名" set 列名1=值1,列名2=值2,······,列名n=值n ?where 條件表達式
<2>點擊Execute執(zhí)行SQL語句


(9)通過SQL語句篩選值
<1>點擊SQL,輸入篩選值的SQL語句>>select* from "列表名" where 條件表達式
*代表顯示所有滿足條件表達式的列值,也可以把*換成其他的列名,意思是顯示滿足條件表達式的列的列值
<2>下方窗口是篩選顯示的值

(10)通過編輯器刪除一行數(shù)據(jù)
<1>選中user,選中一行,點擊最下面的減號



(11)通過SQL語句刪除一行數(shù)據(jù)>>delete from 列表名 where 條件表達式



(12)通過SQL語句刪除一個列表>>drop table "列表名"


總結(jié):
增:insert into "列表名" (列名1,列名2,······,列名n) values(列值1, 列值2,·····, 列值n);
刪:delete from 列表名 where 條件表達式
改:update "列表名" set 列名1=值1,列名2=值2,······,列名n=值n ?where 條件表達式
查:select* from "列表名" where 條件表達式
(13)簡單基本的SQL語句:
(1) 數(shù)據(jù)記錄篩選:
sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 like '%字段值%' order by 字段名 [desc]"
sql="select top 10 * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"
sql="select top 10 * from 數(shù)據(jù)表 order by 字段名 [desc]"
sql="select * from 數(shù)據(jù)表 where 字段名 in ('值1','值2','值3')"
sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"
(2) 更新數(shù)據(jù)記錄:
sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達式"
sql="update 數(shù)據(jù)表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"
(3) 刪除數(shù)據(jù)記錄:
sql="delete from 數(shù)據(jù)表 where 條件表達式"
sql="delete from 數(shù)據(jù)表" (將數(shù)據(jù)表所有記錄刪除)
(4) 添加數(shù)據(jù)記錄:
sql="insert into 數(shù)據(jù)表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)"
sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)
(5) 數(shù)據(jù)記錄統(tǒng)計函數(shù):
AVG(字段名) 得出一個表格欄平均值
COUNT(*;字段名) 對數(shù)據(jù)行數(shù)的統(tǒng)計或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計
MAX(字段名) 取得一個表格欄最大的值
MIN(字段名) 取得一個表格欄最小的值
SUM(字段名) 把數(shù)據(jù)欄的值相加
引用以上函數(shù)的方法:
sql="select sum(字段名) as 別名 from 數(shù)據(jù)表 where 條件表達式"
set rs=conn.excute(sql)
用 rs("別名") 獲取統(tǒng)計的值,其它函數(shù)運用同上。
查詢?nèi)コ貜?fù)值:select distinct * from table1
(5) 數(shù)據(jù)表的建立和刪除:
CREATE TABLE 數(shù)據(jù)表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )
(6) 單列求和:
SELECT SUM(字段名) FROM 數(shù)據(jù)表
參考SQL語句大全:https://baike.so.com/doc/3210900-3383815.html
7.SQL的深入
(1)要想在C#中使用數(shù)據(jù)庫,我們需要先做一些準(zhǔn)備工作
<1>在Plugins文件夾下添加三個動態(tài)庫Mono.Data.Sqlite.dll,System.Data.dll,sqlite3.dll
1)先在Assets下新建Plugins(插件文件夾)文件夾。將Unity的安裝目錄C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0
下的Mono.Data.Sqlite.dll,System.Data.dll拷貝至剛才新建的文件夾Plugins 下


2)在電腦中搜索sqlite3.dll,可能會有多個同名文件,我們要那個在Unity目錄下的,這個是我們自己設(shè)定Unity文件所在的位置,實在不行可以去官網(wǎng)下載 http://www.sqlite.org/download.html

3)右擊打開文件所在的位置,將sqlite3.dll拷貝至Plugins 文件夾下。


關(guān)于這三個動態(tài)庫文件,參考文章:http://blog.csdn.net/glunoy/article/details/52037598
<2>修改三個動態(tài)庫的信息
1)分別選中三個動態(tài)庫,修改信息,勾選Any Platforms(任意平臺),unity設(shè)定中CPU選擇Any CPU,OS選擇Any OS

2)下載平臺全部勾選

3)最后點擊Apply應(yīng)用,這樣我們就可以在C#中使用數(shù)據(jù)庫了
(2)引入要添加的數(shù)據(jù)庫文件

(3)創(chuàng)建腳本文件

<1>命名空間:using Mono.Data.Sqlite;
類:SqliteConnection、SqliteCommand、SqliteDataReader
1)SqliteConnection
1.1)創(chuàng)建一個與數(shù)據(jù)庫鏈接的鏈接對象:SqliteConnection(數(shù)據(jù)庫路徑);
1.2)打開數(shù)據(jù)庫:對象.Open();
1.3)創(chuàng)建數(shù)據(jù)庫命令:對象.CreateCommand();
1.4)關(guān)閉數(shù)據(jù)庫鏈接:對象.Close();
1.5)銷毀數(shù)據(jù)庫鏈接:對象.Dispose();
2)SqliteCommand
2.1)輸入命令文本:對象.CommandText=信息;
2.2)執(zhí)行SQL語句方法一:
受到影響的的行數(shù),此方法只能用來增刪改:對象.ExecuteNonQuery();
2.3)執(zhí)行SQL語句方法二:
當(dāng)有多個查詢結(jié)果,只返回第一行第一列的值,此方法在查詢結(jié)果只有一個的時候使用,對象.ExecuteScalar();
2.4)執(zhí)行SQL語句方法三:
可以返回多個或所有信息,對象.ExecuteReader();
3)SqliteDataReader
3.1)當(dāng)前行是否有可讀信息:對象.Read();
3.2)可讀的行數(shù):對象.FieldCount;
<2>命名空間:using UnityEngine;
類:Application
1)Application
1.1)找到要鏈接的數(shù)據(jù)庫所在的目錄:"Data Source="+Application.streamingAssetsPath+"StreamingAssets目錄下的目錄"
8.WWW
(1)簡單使用WWW類
<1>代碼貼圖:

<2>WWW類:
1)創(chuàng)建一個鏈接路徑的WWW對象:WWW(本地鏈接或者時網(wǎng)絡(luò)鏈接);
本地鏈接:需要在路徑前面加file://
網(wǎng)絡(luò)鏈接:服務(wù)器鏈接
2)錯誤:對象.error
3)是否在做:對象.isDone
4)圖片信息:對象.texture
5)卸載:對象.Dispose();
<2>IEnumerator協(xié)程
等待對象完成操作:yield return 一個對象;
最后:這里不奇怪了,按理說數(shù)據(jù)庫什么應(yīng)該時挺多的,但我們這里是針對游戲開發(fā),而在游戲開發(fā)中需要的并不多,基本操作即可。。