Giter Site home page Giter Site logo

Unity about blog HOT 1 OPEN

WangShuXian6 avatar WangShuXian6 commented on July 20, 2024
Unity

from blog.

Comments (1)

WangShuXian6 avatar WangShuXian6 commented on July 20, 2024

Unity

优缺点

优势

提供了非常高效的可视化工作流和多维度的跨平台支持

Unity 使用模块化组件系统构造游戏对象。
在一个组件系统中,“组件”是一个混合搭配功能的包,对象由一系列组件构建,而不是由层级严格的类构建。
换句话说,组件系统是和面向对象编程不同的方法(它更灵活),游戏对象是通过组合的方式而不是继承的方式构建的。
图 1-1 演示了继承和组件系统的对比。
image

在组件系统中,物体存在于一个扁平的层级结构中,不同的物体有不同的组件集合,而不像继承结构,不同物体处于树的完全不同的分支中。
这种设计加快原型的开发,因为当物体改变时,可以快速混合搭配不同组件而不必重构继承链。

当没有组件系统时,可以编写代码实现自定义的组件系统,但是 Unity 已经有一个健壮的组件系统,这个系统甚至与可视化编辑器无缝地集成在一起。
不仅能通过代码维护组件,还能使用可视化编辑器附加和移除组件。另外,可以通过组合构建对象,
也可以在代码中选择使用继承,包括所有基于继承的最佳设计模式

缺点

混合使用可视化编辑器和复杂的代码,尽管和 Unity的组件系统能高效地组合在一起,但它也不简单。在复杂场景中,你会搞不清楚场景中的哪个物体附加了指定组件。Unity 提供了搜索功能用于查找附加的脚本,但该搜索是很粗糙的;有时你还会遇到一些情况,为了找出脚本链接,需要手动检查场景中的物体。
这些情况虽然不会经常出现,但是一旦出现,会令人沮丧。

第二个缺点会让有经验的编程人员吃惊且失望,即 Unity 不支持链接外部代码库。
需要的库必须手动复制到每个使用它们的项目中,而不是引用一个中心共享的位置。
对类库缺少中心位置,在多个项目**享类库就会变得笨拙。这个缺点能通过巧妙使用版本控制系统来绕开,但 Unity 不支持外部代码库的使用

必须使用预设(prefab)。预设是 Unity 特有的一个概念,
预设是可视化定义交互对象的一种灵活方式。预设很强大,只属于 Unity(它和 Unity 的组件系统绑定在一起),但预设的编辑流程却十分粗糙。预设极其有用,且作为 Unity 的主要部分进行工作

使用 Unity

打开示例模板
image
image

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 菜单具有高级功能
image

from blog.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.