Comments (1)
Unity
优缺点
优势
提供了非常高效的可视化工作流和多维度的跨平台支持
Unity 使用模块化组件系统构造游戏对象。
在一个组件系统中,“组件”是一个混合搭配功能的包,对象由一系列组件构建,而不是由层级严格的类构建。
换句话说,组件系统是和面向对象编程不同的方法(它更灵活),游戏对象是通过组合的方式而不是继承的方式构建的。
图 1-1 演示了继承和组件系统的对比。
在组件系统中,物体存在于一个扁平的层级结构中,不同的物体有不同的组件集合,而不像继承结构,不同物体处于树的完全不同的分支中。
这种设计加快原型的开发,因为当物体改变时,可以快速混合搭配不同组件而不必重构继承链。
当没有组件系统时,可以编写代码实现自定义的组件系统,但是 Unity 已经有一个健壮的组件系统,这个系统甚至与可视化编辑器无缝地集成在一起。
不仅能通过代码维护组件,还能使用可视化编辑器附加和移除组件。另外,可以通过组合构建对象,
也可以在代码中选择使用继承,包括所有基于继承的最佳设计模式
缺点
混合使用可视化编辑器和复杂的代码,尽管和 Unity的组件系统能高效地组合在一起,但它也不简单。在复杂场景中,你会搞不清楚场景中的哪个物体附加了指定组件。Unity 提供了搜索功能用于查找附加的脚本,但该搜索是很粗糙的;有时你还会遇到一些情况,为了找出脚本链接,需要手动检查场景中的物体。
这些情况虽然不会经常出现,但是一旦出现,会令人沮丧。
第二个缺点会让有经验的编程人员吃惊且失望,即 Unity 不支持链接外部代码库。
需要的库必须手动复制到每个使用它们的项目中,而不是引用一个中心共享的位置。
对类库缺少中心位置,在多个项目**享类库就会变得笨拙。这个缺点能通过巧妙使用版本控制系统来绕开,但 Unity 不支持外部代码库的使用
必须使用预设(prefab)。预设是 Unity 特有的一个概念,
预设是可视化定义交互对象的一种灵活方式。预设很强大,只属于 Unity(它和 Unity 的组件系统绑定在一起),但预设的编辑流程却十分粗糙。预设极其有用,且作为 Unity 的主要部分进行工作
使用 Unity
Unity 中的界面分为不同的部分:Scene 标签、Game 标签、工具栏、Hierarchy 标签、Inspector 标签、Projector 标签和 Console 标签。每个部分都有不同的用途,它们在构建游戏的生命周期中都很重要:
● 可以在 Project 标签中浏览所有文件。
● 使用 Scene 标签,可以在浏览 3D 场景的同时将对象放置进去工具栏中的控件用于处理场景。
● 可以在 Hierarchy 标签中拖放对象的关系。
● Inspector 列出了所选对象的信息,包括链接的代码。
● 可以在 Game 视图中测试游戏,并在 Console 标签中查看错误输出。
这是 Unity 中的默认布局,所有不同的视图都有标签,而且可以移动它们或修改它们的尺寸,将其停靠在屏幕中不同的位置。后面将介绍如何自定义布局,不过现在默认布局是理解所有视图用途的最佳方式。
Scene 视图、Game 视图和工具栏
界面中最突出的部分是中间的 Scene 视图。这是观察游戏世界和移动对象的场所。
网格对象也会出现在场景中(后面给出它的定义)。也能在场景中看到其他对象,它们由不同的图标和彩色线条表示:摄像机、灯光、声源、碰撞区域等。
注意在这个视图看到的东西和运行游戏时看到的不一样。可以在 Scene 视图中到处浏览,而不会受到Game 视图的约束
网格对象是 3D 空间中的可视对象。3D 中的可视对象是由很多连接的线和图形构成的,因此世界是由网格构成的。
Game 视图不是屏幕中独立的部分,而是另一个标签,它位于 Scene 视图的右侧(在视图左上角可以找到该标签)。在界面上的有些地方可能有多个这样的标签,如果单击一个不同的标签,视图会被新激活的标签替换。当游戏运行时,这个视图会变成 Game
视图。在每次运行游戏时不需要手动切换标签,因为当游戏启动时,视图会自动切换为 Game 视图。
提示: 运行游戏时,可以切换回 Scene 视图,这样就能在运行的场景中检查对象。运行游戏时,这个功能非常适合于查看什么对象在执行什么操作,它是一个很有用的调试工具,而这正是大多数引擎所不具备的。
所谓运行游戏,就是简单地单击 Scene 视图上方的 Play 按钮。界面的顶部是工具栏,Play 按钮正位于中间
工具栏左边的按钮用于场景导航和变换对象——如何浏览场景和移动对象
工具栏的右侧是布局和图层的下拉菜单。
Unity 界面的布局很灵活,Layouts 菜单允许在布局之间来回切换。Layers 菜单具有高级功能
from blog.
Related Issues (20)
- ControlNet [stable diffusion] HOT 2
- GPT Prompt 提示词工程 HOT 2
- MetaGPT 源码分析报告 HOT 2
- ADI 亚德诺半导体 电子电气术语表 Glossary of EE Terms HOT 2
- stanford-agent-生成式代理 - 人类行为的交互式仿真
- Blender HOT 1
- 更便宜的3D MMO服务器:GPGPU
- C++ HOT 1
- Unreal Engine 虚幻引擎 HOT 9
- MMORPG + Unreal 5 架构 HOT 6
- C/C++ 工程化 HOT 12
- Cake(C# Make) HOT 6
- NUnit HOT 1
- KiCad HOT 3
- DALL-E 3 HOT 1
- 虚幻引擎 表演捕捉 Live Link HOT 1
- Unreal Engine 5 程序化内容生成框架(PCG) HOT 5
- 虚幻引擎 Unreal Engine 5 C++ HOT 14
- 虚幻引擎5 材质系统 Unreal Engine 5 Material HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blog.