程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 用Unity代碼通過Xml配置生成GameObject之——前兩天掉的坑,unitygameobject

用Unity代碼通過Xml配置生成GameObject之——前兩天掉的坑,unitygameobject

編輯:C#入門知識

用Unity代碼通過Xml配置生成GameObject之——前兩天掉的坑,unitygameobject


1. Resources.Load(path),path不是絕對路徑,而是相對"Resources/"的相對路徑!如:

要想Instantiate則代碼應該如下:
string man1Path = "Research/FBX/man1/";
GameObject weapon = Instantiate(Resources.Load(man1Path + "char_weapon_ani", typeof(GameObject))) as GameObject;

 

(次奧試了好多次才試成功摔……)   2. 讀取Xml 昨晚在網上亂找了一氣,實踐了方法一,莫名其妙掉進了坑裡出不來,於是回去整理了下思路,記著以前應該不是這麼寫的,要麼case1:再找一個解析方法,要麼case2:先生成類序列化後,仿制xml,再反序列化之。 試了兩個庫,一個是System.Xml.LinQ;(方法一) 當中就有用到 Descendants() 方法,結果出來 IEnumerable 神馬的,操作不能,這方法我覺得肯定是可行的,但是我讀不到值= =鑒於代碼也被我刪了就略過這段吧= =||| 於是後來改用 Sytem.Xml(試了case 1) 其中 XmlNodeList XmlNode SelectSingleNode()等比較容易理解~  貼一點代碼:  
XmlElement root = doc.DocumentElement; 
//獲取所有<character> …… </character>
XmlNodeList charactersNodes = root.GetElementsByTagName("character");
//遍歷之,繼續操作 
foreach (XmlNode characterNode in charactersNodes)
{
    ……
}

 

3.通過代碼添加GameObject position的問題 背景: GameObject  human包括了GameObject  body ,body包含human、weapon等。 期望human.transform.position = (1,0,1), body.transform.position = (0,0,0)。 把body.transform.parent = human.tranform 後,body.transform.position自動變成了(-1, 0 , -1) 。 假設我把body.transform.position = (0,0,0),weapon.transform.position又成了(-1,0,-1)…… = =....... 於是假設我生成了5個不同position的human,可以看到圖像全部重疊在了一起 = = 待解決,解決完了再上來改吧……   更新來了:  解決方案:不應該去設置position,而應該設置localPosition就會隨著parent的position走了~   4.有關mesh,Material取到了以後貌似沒貼上去啊摔,繼續研究……

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved