2012-03-22 89 views

回答

3

您可能需要指定在這種類型的地址以及如果該類型位於不同的組件,該組件:

var type = Type.GetType("UnityEngine.Vector3, UnityEngine", true); 
+0

我救使用此類型: string typeName = vector3Value.GetType()。ToString(); 然後使用Type.GetType(typeName)訪問它;我應該使用vector3Value.GetType()來保存它嗎?AssemblyQualifiedName?這將工作,但它會產生一個稍長的價值。無論如何,我可以將字符串中的typeName保存,但值必須很短。 – farooq 2012-03-22 10:28:51

+0

@farooqaaa。它會給你'Type',而不是'string'。那甚至不會編譯! **編輯:**是的,你需要'AssemblyQualifiedName'。在我的答案中查看文檔。 – gdoron 2012-03-22 10:31:03

+0

對不起!我忘了「.ToString()」部分。編輯:無法編輯我最後的評論。 「有什麼方法可以將字符串中的typeName保存爲一個更短的值?目前它可以保存CultureInfo等」 – farooq 2012-03-22 10:32:33

3

您需要使用的大會,如果它不是一個「nativa型」或調用組件內

閱讀:

如果typeName的包括命名空間,但不集名稱,該方法搜索只有調用對象的程序集和Mscorlib.dll,按此順序。如果typeName用部分或完整程序集名稱完全限定,則此方法在指定程序集中搜索。如果裝配體名稱很強,則需要一個完整的裝配體名稱。

的typeName(的Type.GetType(string type)參數)

類型:System.String 類型的組件限定名稱得到。請參閱AssemblyQualifiedName。如果該類型位於當前正在執行的程序集或Mscorlib.dll中,則只需提供由其名稱空間限定的類型名即可。 語法是這樣的:

var type = Type.GetType("UnityEngine.Vector3, AssemblyName"); 
相關問題