unity3d C#之配置檔案的載入
一,放置配置檔案位置一般放在 StreamingAssets下面
我的TowManager.TxT檔案裡面寫的是
[Tow_Crystal]
#attack=10
#attackDistance=15
#attackInterval=1.5
#weaponName=Test
[Tow_Gatling]
#attack=15
#attackDistance=10
#attackInterval=4
#weaponName=Test
[Tow_Cannon]
#attack=20
#attackDistance=8
#attackInterval=1
#weaponName=Test
具體程式碼
using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; public class Config : MonoBehaviour { //把towDic字典中的內容讀取到專案中 // 主鍵 子鍵 子值 public static Dictionary<string, Dictionary<string, string>> towDic = new Dictionary<string, Dictionary<string, string>>(); //按照Dictionary的寫法一步一步的寫 // Use this for initialization public string path = "TowManager.txt"; //配置檔案要放在Awake裡面,因為要在專案執行中要保證資料要先有 void Awake() { //把新建的配置檔案 TowManager.txt檔案放到StreamingAssets目錄下,之後用Combine合併路徑 path = Path.Combine(Application.streamingAssetsPath, path); //用於讀取配置資訊到數組裡面 string[] items = File.ReadAllLines(path); //主鍵 string mainKey = null; //子鍵 string subKey = null; //子值 string subValue = null; foreach (var item in items) { //判斷讀取到的行是否為空 if (!string.IsNullOrEmpty(item)) { item.Trim(); //如果該字元開始是"[" if (item.StartsWith("[")) { //去除不用的字元將其作為字典的主鍵 mainKey = item.Substring(1, item.Length - 2).Trim(); towDic.Add(mainKey, new Dictionary<string, string>()); print("主鍵為:" + mainKey); //如果開始的符號是# } //如果該字串是以“#”開始 if (item.StartsWith("#")) { //用=號分割 去除不用的符號 分別賦值給子鍵和子值 string[] main = item.Split('='); subKey = (main[0].Substring(1, main[0].Length-1)).Trim(); subValue = main[1].Trim(); //給主鍵新增子建和子值 towDic[mainKey].Add(subKey, subValue); print("子鍵為:" + subKey + " 子值為:" + subValue); } } } //測試輸出是否正確 print(towDic["Tow_Crystal"]["attack"]); } }
讀取配置檔案
例項:給你的遊戲物體配置相關的值
注意:如有錯誤,請檢視你建立的角色名是否和配置檔案中的角色名一致,檢視你的角色名通過剪下後是否和字典中相應的主鍵一致,其他就沒有問題了,public abstract class TowState : MonoBehaviour { //攻擊力 // [HideInInspector] public float attack; //攻擊距離 // [HideInInspector] public float attackDistance; //攻擊間隔 public float attackInterval; public void Start() { //主鍵 //由於我建立的遊戲物體是 Instantiate()例項化出來的因此在獲取 主鍵 要去掉 (Clone)這幾個字元(transform.parent.parent.name.Length-7),才能保證主鍵的一致 //注意:在遊戲場景中不能有這個物體,不然由於場景中的 遊戲物體的名稱 就是字典中的主鍵,會報 主鍵錯誤(沒有匹配到) string MainKey=transform.parent.parent.name.Substring(0,transform.parent.parent.name.Length-7); //通過測試 通過剪下遊戲名來判斷是否與主鍵一致 print(MainKey); //獲得通過子建的key,獲取相應的子值--其中(GameMessager.Instance是一個單例) //由於通過字典得到的值是String型別的,轉換為float型別 attack=float.Parse(GameMessager.instance.configFile[MainKey]["attack"]); attackDistance = float.Parse(GameMessager.instance.configFile[MainKey]["attackDistance"]); attackInterval = float.Parse(GameMessager.instance.configFile[MainKey]["attackInterval"]); attackTypechange = GameMessager.instance.configFile[MainKey]["attackType"]; } }
相關推薦
unity3d C#之配置檔案的載入
一,放置配置檔案位置一般放在 StreamingAssets下面 我的TowManager.TxT檔案裡面寫的是 [Tow_Crystal] #attack=10 #attackDistance=15 #attackInterval=1.5 #weaponName=Te
【一起學原始碼-微服務】Nexflix Eureka 原始碼二:EurekaServer啟動之配置檔案載入以及面向介面的配置項讀取
前言 上篇文章已經介紹了 為何要讀netflix eureka原始碼了,這裡就不再概述,下面開始正式原始碼解讀的內容。 如若轉載 請標明來源:一枝花算不算浪漫 程式碼總覽 還記得上文中,我們通過web.xml找到了eureka server入口的類EurekaBootStrap,這裡我們就先來簡單地看下: /
Struts2之配置檔案的載入的順序
掌握: 載入的配置檔案的名稱,位置和作用 Struts2框架的核心是StrutsPrepareAndException過濾器,該過濾器有兩個功能 Prepare-----預處理,載入核心的配置檔案 Execute--
Unity3D-動態讀取配置檔案,載入遊戲物件
private Dictionary<int,T> LoadConfig<T>(string fileName) where T : class,new() {
Nginx入門筆記之————配置檔案結構
Nginx入門筆記之————配置檔案結構 ... #全域性塊 events { #events塊 ... } http #http塊 { ... #http全域性塊 server #
C++讀取配置檔案.txt連線資料庫
mysql=mysql_init((MYSQL*)0); ifstream file; string path="D:/data.txt"; file.open(path.c_str()); string port1; string url; string name; str
Struts2的入門之配置檔案和傳值問題
struts-base.xml檔案詳解這是struts2的基礎配置檔案必須的 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD
asp.netcore 深入瞭解配置檔案載入過程
前言 配置檔案中程式執行中,擔當著不可或缺的角色;通常情況下,使用 visual studio 進行建立專案過程中,專案配置檔案會自動生成在專案根目錄下,如 appsettings.json,或者是被大家廣泛使用的 appsettings.{env.EnvironmentName}.json;配置檔
Hibernate的入門之配置檔案和增刪改查
首先使用maven匯入jar包,然後配置主xml檔案 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Confi
winform C#根據配置檔案啟動不同的窗體
Visual Studio中,新建winform C#專案後,會預設生成一個主窗體檔案,一般叫 Form1, 也可以自己改名,反正啟動程式就會首先啟動這個窗體。 這是一種固定的模式,那麼如果專案中有多個不同的窗體,不同情況下分別啟動不同的窗體,如何實現呢? 第一反應是把主窗體隱藏(Hide)
Golang 專案之配置檔案
相信對於很多gopher 而言, 我這篇文章,算比較初級,我是一個一年多經驗的golang程式設計師,有著5年左右的程式設計經驗。 golang 對於初學者還算友好, 寫程式碼很好入門, 但業界對於golang工程與專案的BP卻比較缺少,或者是有很多方為此爭論不休,就比依賴管理工具就搞出了許多個,如 知名的有
C# 用配置檔案連線資料庫(Winform和Webform)
Winform中用配置檔案連線資料庫 資料庫連線類YSqlHelper程式碼: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst
SpringBoot——配置檔案載入位置
SpringBoot啟動會掃描以下位置的application.properties或者spplication.yml檔案作為springboot的預設配置檔案。 高 -file:./config/ | -file:./ | -classpath:
Scrapy 之配置檔案 setting.py
1.爬蟲是否遵守 robots 協議:預設是遵守的;不遵守把第二行註釋刪掉即可 # Obey robots.txt rules # ROBOTSTXT_OBEY = False 2.爬蟲是否讓瀏覽器識別我們的 cookie:預設是識別;不想讓瀏覽器識別,是一種反反爬策略,第
mybatis原始碼-解析配置檔案(三)之配置檔案Configuration解析(超詳細, 值得收藏)
1. 簡介 1.1 系列內容 本系列文章講解的是mybatis解析配置檔案內部的邏輯, 即 Reader reader = Resources.getResourceAsReader("mybatis-config.xml"); SqlSessionFact
Spring Cloud與微服務之配置檔案中心Spring Cloud Config
文章目錄 Spring Cloud Config簡介 Git上的配置檔案springcloud-config-resources springcloud-config-resources專案結構 springcloud-config-r
mybatis原始碼-解析配置檔案(四)之配置檔案Mapper解析
其中, mappers作為configuration節點的一部分配置, 在本文章中, 我們講解解析mappers節點, 即 xxxMapper.xml 檔案的解析。 1 解析入口 在解析 mybatis-config.xml 時, 會進行解析 xxxMapper.xml 的檔案。 在圖示流程的 XMLCo
mybatis原始碼-解析配置檔案(四-1)之配置檔案Mapper解析(cache)
1. 簡介 本文章主要講解的是, xxxMapper.xml 檔案中, cache 節點的原始碼。 2. 解析 XMLMapperBuilder.cacheElement() 方法主要負責解析 <cache> private void cacheElement(XNode context)
Nginx基礎之配置檔案nginx.conf
基礎階段回顧: Nginx基礎之簡介與快速安裝 Nginx基礎之安裝目錄和配置語法詳解 nginx預設的配置檔案有: nginx.conf/default.conf 主配置檔案nginx.conf nginx.conf原檔案: nginx的預設配置語法
統計系列之配置檔案的解析
運用讀取資料庫的配置檔案為例子: 1.首先來看一下配置檔案的格式: [rds_mysql] ip=localhost port=3306 db=test1,test2 user=root passwd=123456 enable=1 2.利用configparser