适用于资深C#和C++程序员的Unity脚本编写教程

您所在的位置:网站首页 unity需要什么语言 适用于资深C#和C++程序员的Unity脚本编写教程

适用于资深C#和C++程序员的Unity脚本编写教程

2023-08-28 01:52| 来源: 网络整理| 查看: 265

传统的“游戏对象-组件”概念仍将继续有效,因为它易于被程序员和非程序员理解,并且易于构建直观的UI。当您将刚体组件添加到游戏对象时,该游戏对象会开始下落;将光源组件添加到游戏对象时,它将开始发光。依此类推。 

但是,该组件系统是基于面向对象的框架编写的,随着硬件的不断发展,它给开发人员带来了一系列难题,例如缓存和内存的管理。

组件和游戏对象是“重型C++”对象。所有游戏对象都有一个名称。它们的组件是基于C++组件的C#包装器。这使得它们易于使用,但可能会降低性能,因为它们最终可能以非结构化方式存储。这种C#对象可能存储在内存中的任意位置。C++对象也可能存储在内存中的任意位置。它们可能不在同一块连续的内存空间中。每次将任何内容加载到CPU中进行处理时,都必须从多个位置获取所有内容。这可能导致操作缓慢且效率低下,因此需要通过多种方法进行优化。

为了解决上述性能问题,我们正在使用高性能、多线程的面向数据的技术堆栈(也称为DOTS)重新构建Unity的核心基础(当前处于“预览”阶段)。

使用DOTS,您的游戏可充分利用最新的多核处理器。它包含以下部分:

可高效运行多线程代码的C#作业系统。 默认情况下编写高性能代码的实体组件系统(ECS)。 生成高度优化的本地代码的Burst编译器。

在DOTS中,新的组件系统是ECS;在该新系统中,您将使用实体进行使用游戏对象(在使用传统的面向对象的方式时)进行的操作。组件仍称为组件。它们的关键区别在于数据布局。有关更多信息,请参阅博客文章“关于DOTS:实体组件系统”。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3