# 面向对象的开发

> Develop Unity projects with the traditional object-oriented programming philosophy and architecture.

传统的 Unity 项目有两种相关的面向对象方式：

* 它们接受面向对象的编程哲学，该哲学基于对象的概念、其属性和函数，以及这些对象之间的关系。
* Unity 项目的原始架构使用基于对象的模型，其类型派生自 `UnityEngine.Object`。在此模型中，场景由游戏对象组成，这些游戏对象又与其他类型的对象交互并由它们控制。

面向对象开发的替代方案是面向数据的开发，这是一种编程哲学，也是一套帮助您实现这些原则的技术。面向数据的方法在规模上具有强大的性能优势，但对于没有经验的开发者来说，学习起来可能更具挑战性。

面向对象和面向数据的开发并不相互排斥，您可以将两者的元素组合在一起。有关面向数据开发的信息，请参阅 [Unity 的面向数据技术栈](https://unity.com/dots)。

| **主题**                                                                                                 | **描述**                                                  |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------- |
| [变换对象](/engine/6000.0/manual/transforming-objects.md)                                                  | 通过更改对象的位置、旋转和缩放来移动和变换对象。                                |
| [管理时间和帧率](/engine/6000.0/manual/scripting/object-oriented-development/managing-time-and-frame-rate.md) | 了解 Unity 如何测量时间，以便您可以管理应用程序中的时间流逝速率，并确保根据适当的时间比例更新值。    |
| [在运行时实例化预制件](/engine/6000.0/manual/scripting/object-oriented-development/instantiating-prefabs.md)     | 以编程方式实例化预制件，以相对较少的代码在游戏中创建结构和令人印象深刻的效果。                 |
| [处理事件](/engine/6000.0/manual/scripting/object-oriented-development/event-handling.md)                  | 使应用程序响应事件，例如用户输入、对象碰撞以及物理和渲染更新。                         |
| [跨帧拆分任务](/engine/6000.0/manual/scripting/object-oriented-development/coroutines.md)                    | 使用协同程序在多个场景中同步拆分任务的执行。这对于应在多帧中逐步推进的任务（例如淡出效果）非常有用。      |
| [与 Web 服务器交互](/engine/6000.0/manual/scripting/object-oriented-development/web-request.md)              | 使用 UnityWebRequest 系统可让您的应用程序通过 HTTP 与 Web 服务器交互。       |
| [在运行时为对象添加功能](/engine/6000.0/manual/scripting/object-oriented-development/properties.md)               | 使用 Unity Properties API 可以实现访客设计模式，并在运行时向 .NET 对象添加新操作。 |
| [使用常见数学函数](/engine/6000.0/manual/scripting/object-oriented-development/class-mathf.md)                 | 在应用程序中使用常见的数学函数，包括三角函数、对数函数和其他函数。                       |
| [使用随机性](/engine/6000.0/manual/scripting/object-oriented-development/class-random.md)                   | 生成常用类型的随机值。                                             |
| [辅助图标和控点](/engine/6000.0/manual/scripting/object-oriented-development/gizmos-and-handles.md)           | 用于在场景视图和游戏视图绘制线条和形状以及交互式控点和控件。                          |
| [Null 引用](/engine/6000.0/manual/scripting/object-oriented-development/null-reference-exception.md)     | 了解和诊断 Unity 项目中的 null 用异常。                              |
| [Unity 属性](/engine/6000.0/manual/scripting/object-oriented-development/unity-attributes.md)            | 使用特定于 Unity 的 C# 属性为代码定义特殊行为。                           |

## 其他资源##additional-resources

* [Unity 面向数据的技术栈](https://unity.com/dots)
* [GameObject](/engine/6000.0/manual/scripting/get-started/fundamental-unity-types/class-game-object.md)
