日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#获取对象的唯一标识_Articy Importer Guide - 01 基本对象处理

發布時間:2025/3/21 C# 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#获取对象的唯一标识_Articy Importer Guide - 01 基本对象处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接

基本對象處理 Basic Object Handling

當你為 Unity 項目從 articy:draft 中導出數據時,articy importer 插件將能夠根據你的數據生成數據庫,并為所有數據創建C#類型和屬性。本篇文章將介紹如何獲取這些數據。

本篇文章將包含如下內容:

  • 簡單對象獲取 Simple Object Access
  • 進階對象獲取 Advanced Object Access
  • 相關連接 See Also

簡單對象獲取 Simple Object Access

獲取 articy 對象的最基本方法是直接從數據庫中查詢:

// 通過技術名稱獲取對象 ArticyObject manfred1 = ArticyDatabase.GetObject("Chr_Manfred");

使用 ArticyDatabase 類,我們通過 GetObject 方法和技術名稱 "Chr_Manfred" 獲取到了一個對象。返回的對象是 ArticyObject ,是數據庫中所有對象的基本類型。


同樣也能手動轉換 ArticyObjec,也可以也可以要求GetObject方法返回特定類型:

// 通過確切類型和技術名稱獲取一個對象 Player_Character manfred2 = ArticyDatabase.GetObject<Player_Character>("Chr_Manfred");


該案例中,我們提供了 Player_Character 這一模板名稱,返回的對象將被自動地轉換為該類型。變量 manfred2 現在包含著對 Player_Character 類型的實體的引用,我們可以訪問其所有屬性:

// 我們可以訪問所有導出的屬性 Debug.Log( manfred2.Text ); // 當然也可以設置屬性 manfred2.DisplayName = "Advanced Manfred 2.0";


技術名稱(Technical Name)并非是查詢數據庫的唯一途徑。另一個辦法是使用 articy 對象獨有的對象id:

var manfred3 = ArticyDatabase.GetObject(0x1000001000010C6); // ↑以十六進制表示 // ↓以十進制表示 var manfred4 = ArticyDatabase.GetObject(72057598332899526);

請注意如何寫十六進制(如articy:draft中所示)或十進制,這是將id打印到log或將其存儲在int中時顯示的。

注意該插件包含將對象的ID轉換為其十六進制字符串表示法的方法,反之亦然。 參見ToHex(Int64)


Articy并不要求技術名稱獨一無二。事實上,完全可以把一個名字分配給多個對象,并使用技術名稱獲取到所有同名對象。

List<ArticyObject> allManfreds = ArticyDatabase.GetObjects("Chr_Manfred");


在這種情況下,要獲取特定對象,請使用具有唯一 id 的 GetObject(id)。

注意由于出錯的可能性很高,建議不要為articy:draft的多個對象故意分配相同的技術名稱。 要將某些對象組合在一起,請使用自定義模板并按其類型查詢對象。 有關如何按類型查詢對象的信息,請參見基本對象處理。

進階對象獲取 Advanced Object Access

有時你會想獲取某個特定類型的所有對象。 此時可使用ArticyDatabase包含的GetAllOfType<TObject>()方法。任何標準的articy對象類型都可用于指定,使用自定義的模板亦可。

var allmyItems = ArticyDatabase.GetAllOfType<Item>();


為進一步過濾返回的道具列表,還可使用LINQ指定其他條件。 請參閱Microsoft的LINQ文檔,了解如何編寫LINQ語句。 下面的示例僅選取了價格高于100的item類型對象。

var allExpensiveItems = ArticyDatabase.GetAllOfType<Item>().Where( aItem => aItem.Template.Item.GoldCost > 100).ToList();

相關連接 See Also

Reference
ArticyDatabase
ArticyRef


Other Resources
Demo Project: Maniac Manfred
Scripting and how to use it
Object Templates

總結

以上是生活随笔為你收集整理的c#获取对象的唯一标识_Articy Importer Guide - 01 基本对象处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。