快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

C#编程中常见数据结构的比较(Unity3D游戏开发)-创新互联

一.前言

兴隆网站建设公司成都创新互联公司,兴隆网站设计制作,有大型网站制作公司丰富经验。已为兴隆上千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的兴隆做网站的公司定做!

Unity3D是如今最火爆的游戏开发引擎,它可以让我们能轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型的互动内容。它支持2D/3D游戏开发,据不完全统计,目前国内80%的手机游戏都是用Unity3D开发。

由于Unity3D在开发过程中使用最多的是C# 语言,所以就要合理的使用C#提供的一些数据结构是非常有必要的,合理的选择数据结构可以加快开发速度,提高游戏运行性能,不合理的使用数据结构则会导致游戏运行性能降低,加大开发复杂程度!

先通过表格看看常用的数据结构:

C#常用数据结构

中文名

Array

普通数组

ArrayList

数组集合

List

泛型数组

LinkList

泛型链表

Stack

Queue

队列

HashTable

哈希表

Dictionary

字典

然后先大概了解这些数据结构的用法。

二.数据结构之间比较和部分使用案列

1.数组(Array)在一般的编程中较为常见,是最简单的数据结构之一,具有三个特点:数组存储的数据都是在连续的内存单元上,数组中的元素都是同一类型,数组可通过下标直接访问。缺点是数组是连续存储,在两个元素之间插入新的元素时很不方便,在创建数组时必须指定长度或初始化元素,就会面临溢出或内存浪费的问题。2.ArrayList就可以解决Array带来的一些缺点:无需指定大小或初始化元素。可以动态的插入数据元素,无需考虑溢出或浪费内存的事。ArrayList可以存储不同数据类型的原因是由于把所有类型都当作Object类型来处理,使用时很有可能会发生类型不匹配的问题,这也就说明ArrayList是类型不安全的数据结构,在频繁的进行读写(装箱拆箱)操作ArrayList的过程中会产生额外的开销,导致性能下降,所以在开发过程中使用ArrayList较少!

3.为了解决ArrayList不安全类型与装箱拆箱的缺点,List作为一种新的数组类型引入,继承了ArrayList的一些优点,且确保了类型的安全,因无需进行装箱拆箱操作,因此List是高性能的,所以List在游戏开发过程中经常用到的数组类型。以下是List的简单操作:

List Lstr=new List();

Lstr.Add(“元素一”); // 插入数据元素

Lstr[0]=“元素二”; // 修改数据元素

Lstr.RemoveAt(0); // 移除数据元素

在Unity3D游戏开发中,我们可以使用List来存储游戏对象,比如在射击游戏中的子弹,或角色扮演游戏中的NPC,都可以使用List进行存储。

4.LinkList的特点是链中的每一个元素都指向下一个元素,这样救构成了一条链。在插入和删除某个数据元素时时间复杂度都为O(1)。

5.Stack(栈)的特点是先进后出。

6.Queue(队列)的特点是先进先出。

7.我通过游戏开发中的用法来介绍哈希表的使用和它的一些特点。在游戏开发过程中,我们通常会涉及到通过游戏角色的ID来正确匹配英雄角色,所以每个英雄角色都要有自己唯一的ID,每个英雄角色的ID和他们的角色名进行一一对应,那么,我们就可以使用哈希表进行存储这种数据,假设有如下信息:

序号

ID

角色名称

1

2059

亚瑟

2

“2060”

妲己

3

“ABC”

后羿

4

2061.5

宫本武藏

使用哈希表存储的代码如下:

Hashtable Hero = new Hashtable ();

     // Hero.Add (key,value);

     Hero.Add (2059,"亚瑟");    //插入第1个元素

     Hero.Add (“2060”,"妲己");    //插入第2个元素

     Hero.Add (“ABC”,"后羿");    //插入第3个元素

     Hero.Add (2061.5,"宫本武藏");  //插入第4个元素

 

     // 通过key访问value

     if (Hero.ContainsKey (“2060”)) {

      Debug.Log ("该队伍中包含妲己");

     } else {

     Debug.Log ("该队伍中不包含妲己");

     }

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站题目:C#编程中常见数据结构的比较(Unity3D游戏开发)-创新互联
转载注明:http://6mz.cn/article/dsehpp.html

其他资讯