首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#字典-在Unity / Kinect项目中通过枚举键访问值

C#字典是一种键值对集合,它允许通过键来访问对应的值。在Unity / Kinect项目中,使用C#字典可以方便地存储和检索数据。

字典的优势在于其快速的查找速度,因为它使用了哈希表来实现。通过将键转换为哈希码,字典可以直接定位到对应的值,而不需要遍历整个集合。

在Unity / Kinect项目中,可以使用字典来存储和访问各种数据,例如游戏对象、关节信息、用户手势等。通过将枚举作为键,可以更方便地访问和管理这些数据。

以下是一个示例代码,展示了如何在Unity / Kinect项目中使用C#字典通过枚举键访问值:

代码语言:csharp
复制
// 定义一个枚举类型
public enum KinectJoint
{
    Head,
    Shoulder,
    Elbow,
    Hand
}

// 创建一个字典并添加键值对
Dictionary<KinectJoint, GameObject> jointDictionary = new Dictionary<KinectJoint, GameObject>();
jointDictionary.Add(KinectJoint.Head, headObject);
jointDictionary.Add(KinectJoint.Shoulder, shoulderObject);
jointDictionary.Add(KinectJoint.Elbow, elbowObject);
jointDictionary.Add(KinectJoint.Hand, handObject);

// 通过枚举键访问值
GameObject shoulder = jointDictionary[KinectJoint.Shoulder];

在上述示例中,我们首先定义了一个名为KinectJoint的枚举类型,用于表示关节的不同部位。然后,我们创建了一个字典jointDictionary,并使用Add方法向字典中添加了四个键值对,分别是不同的关节和对应的游戏对象。最后,我们通过枚举键KinectJoint.Shoulder来访问字典中的值,将其赋值给shoulder变量。

腾讯云提供了丰富的云计算产品,其中包括适用于Unity / Kinect项目的云服务。你可以参考腾讯云的云产品文档来了解更多关于云计算的内容。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2022年Unity面试题分享

简单数值类型:整数型、字符型、布尔型、实数型 复合类型:结构类型、枚举类型 ---- 21、C#中委托和接口有什么区别?各用在什么场合?...; 任何都必须是唯一 该类最大的优点就是它查找元素的时间复杂度接近O(1),实际项目中常被用来做一些数据的本地缓存,提升整体效率。...反之就是通过确定hash桶位置后,遍历单链表,获取对应的value Key HashFunc Buckets桶 Entries入口(最小数据结构) Dictionary字典中最小的数据结构体...【注意】 1、只能从主线程中访问 Unity3D 的组件,对象和 Unity3D 系统调用 2、如果同时你要处理很多事情或者与 Unity 的对象互动,可以用 thread,可以通过排序来解决一个线程改变一个数据的问题...3、C#中有 lock 这个关键字,以确保只有一个线程可以特定时间内访问特定的对象 【重点面试题】3、OnEnable、Awake、Start 运行时的发生顺序?

4K11

Unity面试篇】Unity 面试题总结甄选 |热更新与Lua语言 | ❤️持续更新❤️

AssetBundle的具体开发流程 创建Asset bundle,开发者unity编辑器中通过脚本将所需要的资源打包成AssetBundle文件。 上传服务器。...但是Unity中主要是用c#进行开发的,因此Unity中使用Lua通常有以下两种方案: 使用c#实现一个lua虚拟机 基于原生的c lua api做一个封装,让c#调用 从性能上考虑,当前主流方案都是第二种...所以Unity里执行Lua是以c作为中间媒介的: C# C Lua Lua与宿主语言(这里以c#为例)最基础的两种交互模式即: c#执行lua代码 lua执行c#静态/成员函数 这种交互是通过一个栈结构进行的...如果访问不存在的数据,由__index提供最终结果 如果对不存在的数据赋值,由__newindex对数据进行赋值 __index元方法可以是一个函数,Lua语言就会以【表】和【不存在】为参数调用该函数...20.table的一些知识点 table 是 Lua 的一种数据结构,用于帮助我们创建不同的数据类型,如:数组、字典等; table 是一个关联型数组,你可以用任意类型的来作数组的索引,但这个不能是

1K31
  • 2022年Unity 面试题 |五萬字 二佰道| Unity面试题大全,面试题总结【全网最全,收藏一篇足够面试】

    简单类型:包括 整数类型、实数类型、字符类型、布尔类型 复合类型:包括 结构类型、枚举类型 20. C#中委托 和 接口有什么区别?各用在什么场合?...字典Dictionary的内部实现原理 泛型集合命名空间using System.Collections.Generic; 任何都必须是唯一 该类最大的优点就是它查找元素的时间复杂度接近O(1),实际项目中常被用来做一些数据的本地缓存...哈希表与字典对比 字典:内部用了Hashtable作为存储结构 如果我们试图找到一个不存在的,它将返回 / 抛出异常。 它比哈希表更快,因为没有装箱和拆箱,尤其是类型。...字典是一种通用类型,这意味着我们可以将其与任何数据类型一起使用(创建时,必须同时指定的数据类型)。...注意:仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用。C#中有lock这个关键字,以确保只有一个线程可以特定时间内访问特定的对象 40.

    23.1K1731

    Hololens开发学习(七)——用HoloLens和Kinect构建远程呈现

    虽然UnityKinect插件UWP中不起作用(Kinect无论如何都不能插入HoloLens设备中),但它仍然可以部署到Windows或在IDE中运行时运行(在这种情况下,它使用 .NET 3.5...关键就是Windows中运行Kinect集成,然后通过无线网络将消息发送给HoloLens,使Kinect和Hololens一起工作。...此外,它可以用来发送不仅仅是世界的锚,它还可以发送任何类型的原始,例如,Kinect的位置。...3、使用HoloLens-Kinect项目二次开发 使用Michelle Ma的代码,需要两个独立的Unity项目:一个用于在台式PC上运行,另一个用于HoloLens上运行。...把Kinect插件包添加到桌面应用程序中。从HoloToolkit中将共享预制件添加到两个项目中。在为HoloLens设计的应用程序中,将机器的IP地址添加到共享阶段组件的服务器地址字段中。

    1.9K10

    Unity应用架构设计(10)——绕不开的协程和多线程(Part 1)

    这是个好问题,从设备的硬件上,这已不是瓶颈: 学过操作系统的同学肯定知道CPU是真正的处理大脑,单核的CPU年代,某一时刻CPU只能处理一个线程,通过CPU的调度来实现在不同线程间切换工作。...枚举器接口 IEnumerator 包含3个方法: Current:返回集合当前位置的对象 MoveNext:把枚举器位置移到集合的下一个元素,它返回一个bool,表示新的位置是否超过索引 Reset...d__1 yield return 被声明为枚举时的下一,即Current属性,通过MoveNext方法来访问结果 OK,通过层层推进,想必你对Untiy中的协程有一定的了解了...)跳转到另一个状态 产出:yield 是和return连用, yield return之后的语句被编译器赋值给current变量,最终通过Current属性产出枚举 小结 本文的初衷是想介绍如何在Unity...本章内容对多线程开了个头,我将在下篇文章中说说怎样Unity中使用和管理多线程。 源代码托管Github上,点击此了解

    1.4K60

    项目优化之数据集合优化(Unity3D)

    通过创建对象的集合 我们应该记得每一种集合的具体用法,以及它的优点和缺点,并且知道什么情况下使用它是最佳的。 ---- 文章中,我将列举Unity中所有常用的数组,这样有利于你更好的理解集合。...集合是特殊的类用于数据的存储和检索,集合类通常是用来为元素动态的分配内存,并且通过下标索引来访问列表里的每一个元素等等。...Unity中Dictionary(字典) 和 List(列表)是最常用的集合,让我给初学者对于Dictionary(字典) 和 List(列表)的一些基本概念。如果知道的朋友可以跳过。 1....通过下面表格进行了解: SearchInList() 方法的第一部分是传递一个给列表,然后列表中去查找这个,第二部分是判断这个列表是否存在该,最后根据判断条件返回相应的布尔...SeatchInDictionary() 方法的第一部分是根据这个传入的去找到这个对应的,第二部分通过使用ContainsKey()方法判断这个方法里是否有指定的 让我们一次运行项目进行测试

    63840

    Python语法必备篇——Python中的 列表 【顶级入门教程 全面讲解】

    ,先来简单说一下序列 序列 指的是一块可存放多个的连续内存空间,这些按一定顺序排列,可通过每个所在位置的编号(称为索引)访问它们。... Python 中,序列类型包括字符串、列表、元组、集合和字典 序列是 Python 中最基本的数据结构。..."Unity", "Python"] ["a", "b", "c", "d"] 一些 Python 教程中,经常用 list 代指列表,这是因为列表的数据类型就是 list,通过 type() 函数就可以知道...’, ‘C#’] [‘a’, ‘b’, ‘c’] [1, 2, 3, 4, 5] [] 访问列表中的 列表是 Python 序列的一种,我们可以使用索引(Index)访问列表中的某个元素(得到的是一个元素的...(obj) 统计某个元素列表中出现的次数 3 list.extend(seq) 列表末尾一次性追加另一个序列中的多个(用新列表扩展原来的列表) 4 list.index(obj) 从列表中找出某个第一个匹配的索引位置

    1.4K30

    腾讯的热更新方案开源了

    )替换成lua实现; 2、自定义struct,枚举Lua和C#间传递无C# gc alloc; 3、编辑器下无需生成代码,开发更轻量;; 初探xLua xLua设计原则是保证了运行效率的前提下,尽量的保证开发效率...关于性能 作为一个基础库,性能是至关重要的,其中又有一指标是大家极为关注的:C#侧的gc alloc,xLua在这块做了不少创新。...正如前面例子所示,xLua支持把一个Lua函数绑定到一个C# delegate,这可以避免类型参数传递时产生的gc。 另外,复杂类型表达方面,xLua也取得相当突破。...只要一个struct只包含类型,配置了GCOptimize后,其参数传递,数组访问无gc。...虽说我们都可以C#那找到相应的库,然后通过xLua去使用这些库,但这效率不高,最好能有相应Lua的库。

    2.7K30

    手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    ,这几方面分别最具代表性的是: 1、Unity3D全平台热补丁技术,可以运行时把C#实现(方法,操作符,属性,事件,构造函数,析构函数,支持泛化)替换成lua实现; 2、自定义struct,枚举Lua...关于性能 作为一个基础库,性能是至关重要的,其中又有一指标是大家极为关注的:C#侧的gc alloc,xLua在这块做了不少创新。...正如前面例子所示,xLua支持把一个Lua函数绑定到一个C# delegate,这可以避免类型参数传递时产生的gc。 另外,复杂类型表达方面,xLua也取得相当突破。...只要一个struct只包含类型,配置了GCOptimize后,其参数传递,数组访问无gc。...虽说我们都可以C#那找到相应的库,然后通过xLua去使用这些库,但这效率不高,最好能有相应Lua的库。

    2.9K60

    Unity基础教程系列(新)(一)——游戏对象和脚本(Creating+a+Clock)

    可以结合使用alt或Option和光标来旋转视图。还可以使用箭头移动视点,并通过滚动进行缩放。同样,按F可将视图聚焦在当前选定的对象上。还有更多可能性,但是这些足以现场找到自己的方式。...为此,我们创建了一个通过脚本定义的自定义组件类型。 3.1 C# 脚本资产 通过Assets/ Create / C#脚本将新脚本资产添加到项目中,并将其命名为Clock。...访问Unity类型时总是必须包含UnityEngine前缀是不方便的。幸运的是,我们可以声明应自动搜索名称空间以完成C#文件中的类型名称。这可以通过使用UnityEngine添加来完成;文件的顶部。...Unity完成重新编译后,你会在控制台中看到一条警告,抱怨Clock.hoursPivot从未分配给它。现在仅显示警告,因为这是我们第一次通过代码访问该字段。...触发警告是因为C#编译器不知道应该通过检查器进行连接。我们可以通过为字段声明分配默认来消除此警告,我们可以通过立即为其分配默认来做到这一点。 ? 现在,在编辑器中进入播放模式。

    4.2K20

    【《Effective C#》提炼总结】提高UnityC#代码质量的21条准则

    Unity版本的mono并没有实现,所以严格意义上来说是21条)准则,供各位快速地掌握这本书的知识梗概,Unity中写出更高质量的C#代码。...《Effective C# Second Edition》一书原本有50条原则,但这50条原则是针对C#语言本身以及.NET来写的,我阅读过程中,发现是有些原则并不适用于Unity中mono版本的C#...例如特性(attribute)的参数和枚举的定义,还有那些各个版本发布之间不会变化的。除此之外的所有情况,都应尽量选择更加灵活的readonly常量。...PS: 此原则对应于《Effective C# Second Edition》中原则18。 原则13 保证0为类型的有效状态 创建自定义枚举时,请确保0是一个有效的选项。...● 共有四种不同的策略可以防止类型内部的数据结构遭到有意或无意的修改: 1)类型。当客户代码通过属性来访问类型成员时,实际返回的是类型的对象副本。 2)常量类型。如System.String。

    1.7K30

    手游热更新方案xLua开源:Unity3D下Lua编程解决方案

    Unity3D全平台热补丁技术,可以运行时把C#实现(方法,操作符,属性,事件,构造函数,析构函数,支持泛化)替换成lua实现; 自定义struct,枚举Lua和C#间传递无C# gc alloc...关于性能 作为一个基础库,性能是至关重要的,其中又有一指标是大家极为关注的:C#侧的gc alloc,xLua在这块做了不少创新。...正如前面例子所示,xLua支持把一个Lua函数绑定到一个C# delegate,这可以避免类型参数传递时产生的gc。 另外,复杂类型表达方面,xLua也取得相当突破。...只要一个struct只包含类型,配置了GCOptimize后,其参数传递,数组访问无gc。...虽说我们都可以C#那找到相应的库,然后通过xLua去使用这些库,但这效率不高,最好能有相应Lua的库。

    1.9K60

    .NET周刊【8月第1期 2023-08-06】

    TimerQueue是如何实现最的删除的,包括最小和最大的查找和删除。 作者还提供了完整的代码实现和性能测试,与优先队列PriorityQueue进行了比较。...该扩展基于 C# 开发套件构建,支持代码编辑的 AI 辅助、Roslyn 分析器和 Unity 中的游戏调试等功能。文章还介绍了如何在Unity中使用。...C# 更新 改进的用户界面/用户体验 固定项目标题、主工具栏自定义、运行配置 改进的构建工具窗口 默认外观是新的用户界面 定制和简化 人工智能辅助(访问受限) 版本控制 GitLab 集成 后台提交检查...C# 更新 C++ 更新 性能改进 减少解决方案加载时间 单元测试创建和导航 人工智能辅助(访问受限) 预测调试器(测试版) 反编译器中的程序集差异 【英文】.NET Conf 2023 - 庆祝 .NET...-99e490d4d352 ImmutableArray 上枚举操作的性能。

    18910

    编程中老生常谈的【编码规范】你还记得多少?进来回顾一下吧【文末送书】

    5.8 new 运算符 使用对象初始化设定简化对象创建 使用对象初始设定简化对象创建,如以下示例中所示。...new ExampleClass { Name = "xioaY", ID = 001, sex = "man", Age = 24 }; 下面的示例设置了与前面的示例相同的属性,但未使用初始设定...5.11 OOP面向对象规约 1.避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可 2.不能使用过时的类或方法([Obsolate]标识) 说明:C#...7.类成员与方法访问控制从严 如果不允许外部直接通过new来创建对象,那么构造方法必须是private。 工具类不允许有public或default构造方法。...所以一开始创建该类时就应该将访问明码标价,防止后期出现其他问题。

    80830

    Unity GC 优化 贴士大全

    作者:吴小含 导语 :Unity中频繁的垃圾回收往往是造成手游性能瓶颈的一大元凶,本文对常见的造成频繁垃圾回收的原因做一个扫描,让开发者日常开发中可以有意识的避开这些问题。...由于Unity的GC是采用 Boehm GC 原理, 对象数量 > 引用关系复杂度 > 对象尺寸这一优化原则可以作为通用的优化原则。...int a; float b; bool c; } Foo_S[] fooArray; string[] strArray; 那这100个对象的GC次数就会降低为2次 单个的属性...避免 Update() 内 GetComponent() 和 GetComponentInChildren()。 避免 Update() 内访问 animation 组件。...避免使用枚举或 struct 做 Key 进行字典查找,由于C# Dictionary 的主要接口 Add / ContainsKey / TryGetValue 在被调用时都需要对传进来的 TKey

    2.3K00

    unity3d的入门教程_3D网课

    Project 面板:项目面板,用于管理当前项目中所有的资源。...Unity3D 5.x 后,只支持两种类型的脚本,C# 与 Javascript。国内开发主流的还是使用 C#语言。...,持续返回 true Input.GetKeyDown(); //按下某的一瞬间,返回 true Input.GetKeyUp(); //抬起某的一瞬间,返回 true 返回:bool 类型...(); //按下某的一瞬间,返回 true Input.GetMouseButtonUp(); //抬起某的一瞬间,返回 true 返回:bool 类型 参数:鼠标按键索引,0->左键 ,...通过键盘按键实现桌椅跳动 按下某,桌椅全部上移 2 米; 抬起某,桌椅全部下移 2 米; ---- 第19课:PC端游戏打包与发布 一、游戏打包发布简介 简介 现在的项目文件必须在 Unity

    3.9K40

    快速序列化组件MessagePack介绍

    从上图我们看出MessagePack for C#性能测试中是最好的,这里解释一下第三个MsgPack-Cli是MessagePack官方实现的。...第一和第二都是MessagePack for C#,第一相比第二具有稍快一点的序列化和反序列化速度,但是第二采用了L4压缩功能,显著的减少了二进制的大小。实际使用中推荐使用L4压缩功能。...// 默认情况下,MeesagePack for C#减少了属性名称信息。...MessagePack for C#里叫Union。UnionAttribute只能附加到接口或抽象类。...避免查找映射(字符串的字符串解码,并使用自动化名称查找与il内联代码生成 对于字符串编码,预先生成的成员名字节并在IL中使用固定大小的二进制副本 创建这个库之前,作则实现了一个具有ZeroFormatter

    3.8K31

    【100个 Unity小知识点】 | C#通过 数字int 获取 枚举Enum 中的数值

    Unity 小知识点学习 C#通过数字int获取枚举Enum的方法 枚举类型 ,数据直接存储栈中,而不是使用引用和真实数据的隔离方式来存储。...默认情况下,枚举中的第一个变量被赋值为0,其他的变量的按定义的顺序来递增(0,1,2,3…) enum枚举类型的变量的名字不能相同,但是可以相同 如果enum中的部分成员显式定义了,而部分没有;那么没有定义的成员还是会按照上一个成员的来递增赋值...,//默认int为1 Lost,//默认int为2 Tracking//默认int为3 } 我们可以直接通过 枚举....端从so中通过回调返回一个 int类型 的State状态。...Unity端拿到这个之后,通过判断这个int类型的数值来判断当前应用程序的状态。。 所以这里就可以使用int的方法来获取枚举中的来完成状态的更新。

    2.6K10
    领券