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 基本对象处理相关推荐
- iOS获取设备的唯一标识的方法总结以及最好的方法
各种获取设备唯一标识的方法介绍 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它 ...
- iOS获取设备的唯一标识的方法
各种获取设备唯一标识的方法介绍 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果iOS设备的唯一识别码,它 ...
- 格式android id,android 获取APP的唯一标识applicationId的实例
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID. 方式一 int indentify = getResources().getIdentifier("com.te ...
- 登录实现并获取到用户唯一标识
正文: 功能:登录实现并获取到用户唯一标识 官方文档地址:可以先看完我的文章再看官方地址 实现步骤:1.调用微信API wx.login()得到code 2.把得到的code传给后端,在后端请求 h ...
- Android app 标签,android 获取APP的唯一标识applicationId的实例
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID. 方式一 int indentify = getResources().getIdentifier("com.te ...
- uni-app获取设备的唯一标识
uni-app根据不同手机平台获取设备的唯一标识,由于获取的方式是异步的,当前页面执行不一定能拿到.建议存缓存,其他页面可以用调用缓存的方式获取,不存在的话在执行一下方法获取,确保保证一定能获取的到. ...
- 【转载】设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识
设备唯一标识方法(Unique Identifier):如何在Windows系统上获取设备的唯一标识 原文地址:http://www.vonwei.com/post/UniqueDeviceIDfor ...
- 【文件md5值查看方法详解】:如何获取文件的唯一标识?
[文件md5值查看方法详解]:如何获取文件的唯一标识? 在日常工作中,我们经常需要检查文件是否被篡改或者验证文件的完整性.而文件的MD5值就是一个很好的选择,因为它可以作为文件的唯一标识.那么,如何获 ...
- 获取Android设备唯一标识
很多情况下,需要将APP和设备进行绑定,以保证用户不会无限制的注册或发送请求.然而,Android设备并没有绝对的唯一标识. Android提供了多种方法来获取所谓的唯一标识.常用的有六种. (1)A ...
最新文章
- AI算法效率每16个月提速一倍,算力革命超越摩尔定律
- Windows安装Zookeeper和Dubbo(单机版本)
- iview-admin webpack打包总结的几个问题
- 数据库的定义、模型 和 模式
- db2 最近三个月_昙花一现,PA、PC月跌1800,通用料一蹶不振,救不起的塑市!
- 功能强大的Windows PowerShell
- Fundebug是这样备份数据的
- Lucene6.5.0 下中文分词IKAnalyzer编译和使用
- [SQL] 常用查询脚本
- android端与windows端通信中文乱码问题
- Go搭建REPL环境
- JavaScript高级程序设计(第3版)
- 字符打印流(PrintWriter)
- Win7 64位操作系统连接HP 1010打印机完美解决方案
- EXCEL计算时间差并制作折线图
- 学习淘宝分享出来的链接web检测打开原生App
- imp报IMP-00010,IMP-00013错误
- Spreadsheet
- sql trace基础
- 王者荣耀-数模论文分享(虽然结果我自己都不信)
热门文章
- 在ASP.NET页面中实现数据柱状图
- 数字音视频技术:音频中的一些概念(采样率, 位深度, 声道数, Sample/Frame/Packet)
- 使用ffmpeg循环推流(循环读取视频文件)推送RTMP服务器的方法
- wasm + ffmpeg实现前端截取视频帧功能
- pycharm中使用anaconda中python环境
- MATLAB排列组合函数--nchoosek
- Arduino/Microduino与OneNet平台及web服务器端的交互
- c语言程序二级考试题,2016年计算机二级考试C语言程序设计真题
- 怎么样用 Python 实现读写锁
- Nginx 实现AJAX跨域请求