admin 管理员组文章数量: 887021
2023年12月23日发(作者:delete误删恢复)
内部资料注意保密
Unity3D
工程文档
严 明
二〇一一年八月四日
内部资料 注意保存
目 录
1. 系统环境 ................................................................................................................................... 4
1.1. 系统开发环境 ............................................................................................................... 4
1.2. 系统运行环境 ............................................................................................................... 4
1.3. 多平台移植 ................................................................................................................... 5
2. unity3D基本操作 ..................................................................................................................... 5
2.1. 系统界面 ....................................................................................................................... 5
2.2. Asset Workflow 资产工作流 ..................................................................................... 14
2.3. Creating Scenes 创建场景 ......................................................................................... 15
2.4. Publishing Builds 发布编译 ...................................................................................... 16
2.5. Prefabs 预制品 ........................................................................................................... 18
2.6. Lights 光源 ................................................................................................................ 21
2.7. Cameras 摄像机 ......................................................................................................... 23
2.8. Particle Systems粒子系统 ......................................................................................... 28
2.9. Animation 动画 .......................................................................................................... 50
2.10. Sound 声音............................................................................................................. 52
3. 界面入门 ................................................................................................................................. 58
3.1. Aims of this tutorial 教程目标 .................................................................................. 58
3.2. Screen Layout 场景布局 ............................................................................................ 58
3.3. Finding game objects in 3D space 在3D空间查找游戏对象 .................................. 59
3.4. Creating game objects 创建游戏对象 ....................................................................... 59
3.5. Navigating the Scene View 定位场景视图 ............................................................... 60
3.6. Moving game objects 移动游戏对象 ........................................................................ 60
3.7. Game View 游戏视图 ................................................................................................ 61
3.8. Resizing game objects 伸缩游戏对象 ....................................................................... 62
3.9. Using Assets 使用资产 .............................................................................................. 62
3.10. Adding Components 添加组件 .............................................................................. 63
3.11. Duplicate 复制 ......................................................................................................... 64
4. Unity脚本入门 ....................................................................................................................... 65
4.1. Aims of this tutorial .................................................................................................... 65
4.2. Prerequisites 先决条件 .............................................................................................. 65
4.3. Naming Conventions 命名约定 ................................................................................. 65
4.4. Player Input 玩家输入 ............................................................................................... 66
4.5. Connecting Variables 连接变量 ................................................................................. 67
4.6. Accessing Components 访问组件 ............................................................................. 68
4.7. Instantiate 实例创建 .................................................................................................. 70
4.8. Debugging 调试 ......................................................................................................... 71
4.9. 9. Common script types 公共脚本类型 ..................................................................... 72
5. 使用脚本 ................................................................................................................................. 73
Unity Manual > User Guide > Working with Assets > Using Scripts ............................. 73
Unity手册-> 用户指南 ->与资产合作->使用脚本 .................................................................... 73
Creating new scripts 建立新脚本 ................................................................................... 74
Attaching scripts to objects 附加脚本到对象 .............................................................. 75
2
内部资料 注意保存
Manipulating the object 操作对象 .................................................................................. 76
The Power of Variables 变量的功能 ............................................................................... 78
Where to go from here 从这里走到哪里 ........................................................................ 79
3
内部资料 注意保存
1. 系统环境
1.1. 系统开发环境
1) 研发系统下载,网站: / Download
下载的时候,需要使用一个邮箱注册,下载免费版。
注:A) 必须保证当前安装盘有2G的空闲,同时必须保证C盘有2G的空闲。
B) 建议在2011以后的pc机(双核,独显,2G内存)。
2) 例子下载. 网站: /
A) Gallery:
AngryBots
Play the cross-platform demo that ships with every copy of Unity 3.4.
Substance Demo
Tweak and adjust Substance settings in this feature demo by Allegorithmic.
Featured Profile
MADFINGER Games stretches the limits of mobile development.
Live Demos:
通过滑动按钮选择.
B) Support/resources
Resources
Tutorials
Unite Presentations
Assets 财富:资源、素材
Example Projects
Unity Extensions
Articles
3) 素材下载: /3dwarehouse/
SketchUp软件可以用于格式转换.=>fbx.
转换后的model包含:fbx和同名的渲染目录.
1.2. 系统运行环境
1) 单机运行
需要将主运行文件exe和data,app文件夹一起打包.
2) 网络运行
需要将主运行文件exe和data,app文件夹一起打包.其中一个设置start server,或者默4
内部资料 注意保存
认第一个启动的为服务器,其他人通过ip指向服务器,实现网络游戏.服务器的防火墙要设置端口或关闭.
1.3. 多平台移植
Unity3D可以生成多种平台的的运行版本,File/Build settings。
例如:
1) 生成PC下的运行版本Networking,需要拷贝exe和同名_data文件夹(包含各种资源)。
2) 生成Andriod运行版本apk:先装jdk,andriod sdk,unity3D pro版下执行。
/sdk/
3) 注意switchplatform,否则速度变慢,出错。
2. unity3D基本操作
2.1. 系统界面
5
内部资料 注意保存
1)
Project View 项目视图(项目面板)
每一个项目(Project)包含一个资产(Assets)文件夹,例如:Island。这是管理资产的地方,如场景(Sences)、脚本(Scripts)、3D模型(Models)、纹理(textures)、音频文件(audio)以及预制品(Prefabs)。重要提示:使用项目面板(项目视图)去组织管理资产,不要在系统外移动项目资产,这将断开任何元数据与资产的关联。
A)在资产上点击鼠标右键,可以定位资产在文件系统中的位置,查看资产本身。
B)添加资产到项目,可以从系统外拖拽,或使用Assets->Import New Asset。
C)场景(Scenes)也存储在项目面板里。例如:
在文件系统中的扩展名为。
Unity启动时装入默认场景。使用 Ctrl +N建新场景,使用Ctrl+S保存当前的场景。
在多场景转换时,需要将对多场景进行File->Build Settings,如图:
分别显示场景,然后add current。在场景转换程序中,就能够使用场景名称或序号进行转换。
D)有些资产必须从Unity内部创建,使用Create下拉框,或right click->Create。添加脚本、预制品、或文件夹去组织项目。
6
内部资料 注意保存
2) Hierarchy 层次
层次(Hierarchy)与当前场景关联,包含全部的游戏对象。这些对象是在资产文件里物体直接实例化,像3D模型、或实例化的预制品(自定义对象)。在层次里,你可以选取和父类化对象。当对象被添加及从场景里移除时,它们将也从层次里显示及消失。
Parenting 父类化
通过拖拽将一个对象成为另一个的子对象(绑定到父对象),子对象将与父对象的一起动作和旋转。
3) Toolbar 工具条
工具条由五个基本控制组成。每个涉及不同的编辑器部分。
变换工具—与场景视图一起使用Transform Tools -- used with the Scene
View
变换辅助工具切换—影响场景视图显示Transform Gizmo Toggles --
affect the Scene View display
播放/占停/步进 按钮—与游戏视图一起使用Play/Pause/Step Buttons --
used with the Game View
阶层下拉框—在场景视图里控制每个对象的显示Layers Drop-down --
controls which objects are displayed in Scene View
版面布置下拉框—控制所有的视图排列Layout Drop-down -- controls arrangement of all Views
4) Scene View 场景视图
场景视图是交互式的编辑沙箱,用于选取和定位工作环境,例如播放器、摄像机、敌人等对象。在场景视图内部操纵和操作对象的方法是:
按住鼠标右键进入飞越模式。这让鼠标和W A S D键进入快速第一人称视图导航。
选取任意游戏对象(物体)并按F键,依选取的坐标定为场景视图的中心。
7
内部资料 注意保存
按住Alt键和点击拖拽以摄像机当前的区轴坐标旋转。如果你使用三键鼠标,你也可以:
按住Alt键与按住鼠标中间键围绕摄像机拖拽场景视图旋转。
按住Alt键和鼠标邮件拖拽去伸缩场景视图。这与鼠标滚轮滚动相同。
如果你使用一键鼠标,你可能发现更多的使用手形工具(快捷键:Q)
按住Alt键及点击拖拽去旋转(按住鼠标右键,Q、W、A、S、D控制):
按住Command键(windows log键在windows上)及点击拖拽去伸缩(按住Alt+鼠标右键)
5) Positioning GameObjects 定位游戏对象
构建游戏时,在游戏世界里放置许多不同的对象,使用工具栏里的变换工具去平移、旋转以及缩放单个的游戏对象。每个关联的辅助工具(Gizmo)显示在已选取场景视图里的游戏对象周围。可以使用鼠标及操作任意辅助工具的轴去改变游戏对象的变换组件,或直接输入在检视器面板里的变换组件的数字字段的值。
平移 旋转 比例
当拖动任意辅助工具(Gizmo)的轴时,你可以按住Command键(windows上Ctrl)来捕捉到捕捉设置定义的增量。也可以从Edit->(编辑->捕捉设置…)修改捕捉设置。在辅助工具(Gizmo)的中心点击和拖动去立即操作对象的所有轴。当在拖动中心时,按住Command键(Ctrl键在windows上)去捕捉对象与任何碰撞器的交集。能迅速准确定位。一个三个按钮的鼠标,可以点击鼠标的中间按钮去调整最后一次调整轴(那个变为黄颜色)而不用直接在上面点击它。当使用缩放工具时要小心,因为不均匀的缩放比例如( 1,2,1),可以引起子对象不寻常的缩放。更多的信息在变换游戏对象(物体)章节,请查看变换组件页。辅助工具(Gizmo)显示切换被用于定义任何变换的辅助工具位置。
6) Gizmo Display Toggles辅助工具显示切换
Position: 位置
Center将定位辅助工具在对象渲染范围的中心。
Pivot(枢轴支点)将定位辅助工具在网格实际的枢轴点。
Rotation: 旋转
Local 将保持相对于对象的辅助工具的旋转。(相对坐标)
Global(全局)将钳住辅助工具对整个空间定位。(绝对坐标)
8
内部资料 注意保存
7) Scene Gizmo 场景辅助工具
在场景视图的右上角里是场景辅助工具。显示场景摄像机的当前方向,以及允许你做快速的变换视角。可以在任意的(辅助工具)机械臂上点击去捕获场景摄像机方向以及更改它到等距模式。当在等距模式里时,可以点击鼠标右键拖动做轨道旋转,以及按住Alt键拖动平移。(注意,在单键鼠标下与上述说明有差异,按Alt键加鼠标左键旋转;先按一下Q键,点击鼠标左键拖动平移)。退出等距模式,在场景辅助工具的中心点击一下即可。可以在任意时间按Shift键在场景辅助工具中间点击去切换等距模式。
Perspective mode. 透视模式 Isometric mode等距模式
这里对象不获得小的距离。
8) Scene View Control Bar 场景视图控制条
第一个下拉框是选择绘图模式。你可以选择去查看整个场景纹理,线框架,或纹理与线框架覆盖。在游戏发布时,它不对你的游戏有影响。
Draw Mode drop-down 绘制模式下拉框
下一个下拉框是四选一的渲染模式。你可以选择用RGB、阿尔法、重绘、或管道映射去填充场景视图。另外,这将不影响你发布的游戏。
Render Mode drop-down 渲染模式下拉框
RGB仅是作为正常渲染你游戏的所有颜色。
Alpha阿尔法将渲染所有阿尔法值为了利用阿尔法值去精度调谐透明度或全屏效果。
Overdraw重绘将表明屏幕被强制绘制多少次。
Mipmaps管道映射显示理想纹理大小-红色意味着特殊的纹理太大,蓝色意味着这个纹理可能大一些。当然,理想纹理的大小依靠游戏运行时的分辨率。
接下来,有两个按钮:场景照明和游戏覆盖。
9
内部资料 注意保存
启用场景照明将替代你拥有任何位置的灯在默认场景视图照明去创建你最最终的灯光设置。游戏覆盖将启用对象像天空盒以及GUI元素在场景视图里。
9) Game View 游戏视图
游戏视图是从游戏的摄像机里呈现。它是最终发布游戏的代表。将需要使用一个或多个摄像机去控制当他们玩游戏的时候玩家实际看到的东西。更多关于摄像机的信息,请查看摄像机组件页。
10) Play Mode 播放模式
使用工具条的按钮去控制编辑器播放模式以及查看发布的游戏将如何扮演。当在播放模式里,所作的任何改变都是临时的,在退出播放模式时将被复位。编辑器用户将变暗来提醒在播放模式下。
11) Game View Control Bar 游戏视图控制条
在游戏视图控制条上的第一下拉框是界面比例(Aspect)下拉框。这里,可以强制游戏视图窗口的界面比率到不同的数值。它可以被用于测试在显示器宽度不同界面比率观看你的游戏如何。
往右一点的是播放时最大化开关。当启用时,游戏视图将最大化你的编辑器窗口到100%,为了更好的全屏预览当你进入播放模式时。
继续右边的是辅助工具切换器。当启用时,所有在场景视图里显示的辅助工具将也在游戏视图里被绘制。这个绘制的辅助工具包括类函数利用辅助工具。
最后有一个统计按钮。这个展示渲染统计窗口为优化图形性能是非常有用的。
10
内部资料 注意保存
12) Inspector 检视器面板(属性检视器对话框)
在Unity里的游戏由多个的游戏对象(物体)组成,包括网格、脚本、声音或其它图形元素如光。检视器面板显示关于你当前选取的游戏对象的详细信息,包括所有的附加组件以及它们的属性。这里,修改游戏对象(物体)的功能在场景里。可以阅读更多关于游戏对象(物体)-组件关系,因为了解它是非常重要的。
在检视器面板里显示的任何属性可以被直接修改。甚至脚本变量可以被修改而不通过脚本它自身。可以使用检视器面板修改在运行时的变量去试验和为你的游戏发现魔法可玩性。在脚本里,如果定义了一个对象类型的公共变量(如GameObject 或Transform),可以拖动并放下一个游戏对象或预制品到检视器面板构成一个赋值分配。
在检视器面板里点击任何组件名称旁边的问号去装载该组件引用页。请查看Unity为所有组件提供的完整和详细的组件指南。
13) Add Components from the Component menu从组件菜单添加组件
可以按一下小齿轮图标(或右键单击组件名称)去提出一个指定组件上下文菜单。
11
内部资料 注意保存
检视器面板将为选择的资产文件显示所有的引入设置。(注意:这个可能有差异,有写版本要在项目面板的文件点击一下,才可出现)
Click Apply to reimport your asset. 点击应用重新引入你的资产
对游戏对象使用阶层下来框来Layer drop-down指定一个渲染阶层。对这个游戏对象使用标签下来框Tag drop-down来指定一个标签。
14) Prefabs 预制品
如何有一个选取的预制品,一些额外的按钮将在检视器面板里可用。更多关于预制品的信息,请查看预制品指南页。
15) Status Bar 状态栏
在编辑器底部的状态栏提供多个用途。它将显示任何编译错误或调试日志输出。如果游戏有一个问题,密切注视状态栏是最好的方法找到错误。可以在状态栏上双击去弹出控制台窗口,它所有的脚本或运行错误可见。
16) Console 控制台
12
内部资料 注意保存
在状态栏里双击一个错误,或选择Window->Console(窗口->控制台)将弹出控制台。
控制台从你的游戏里展示消息、警告、错误、或调试输出。你可以使用()与
()的任何一个定义你自己的消息发送到控制台。你可以双击任意消息到达那个引起消息的脚本。你也有一个在控制台工具栏的选项。
大多数的控制台工具栏选项是自说明的(注意:这是一个新的编程用语,指的是通过名称就可以知道其含义),但有一点必须明确。当错误占停是启用的,()将引起占停出现,而()将不会。
17) Customizing Your Workspace 定制你工作空间
可以定制视图布局,通过点击拖动任意视图的选项卡到几个地点之一。拖动一个现有窗口的选项卡区域里的选项卡将添加在任何以存在选项卡的旁边。拖动一个在任意停放区域的选项卡将添加视图,在一个新窗口里。
视图可以停放在一侧或任意存在窗口里的按钮
选项卡也可以从主编辑窗口里分离并排列到它们自己浮动器窗口里。浮动窗口可以包含视图的排列和选项卡就像主编辑器窗口。
浮动编辑器窗口是和主编器窗口一模一样的。除非它没有工具栏。
当已经创建了一个编辑器窗口布局,任何时间可以保存布局和恢复它。通过扩展布局下拉框(在工具栏上发现)和选择保存布局…做这个。命名新布局并保存它,然后通过从布局下拉框里简单的选择它恢复它。
13
内部资料 注意保存
A completely custom Layout 一个完成的定制布局
在任意时间,你可以右键点击任意视图的选项卡去查看附件选项像最大化或增加新的选项卡到同一窗口。(注意:也可以点击图标“”做同样的功能)
2.2. Asset Workflow 资产工作流
Unity Manual > User Guide > Unity Basics > Asset Workflow
这里将按步骤讲解用Unity去使用一个简单的资产。这些步骤是常用的并意味着仅作为基础功能的概述。对于这个例子,将讨论使用一个3D网格。
1) Create Rough Asset 创建粗糙资产
使用任何支持3D建模程序包来创建一个资产的粗糙版本。可以使用Maya。与资产一起工作直到准备保存它。
2) Import 引入
当最初保存资产时,通常应该保存它到项目文件夹的资产文件夹里。打开Unity项目的时候,资产将被确认并引入到项目里。在项目视图(面板)里查看时,将看到资产已经在那里,正是保存的地方。
3) Import Settings 引入设置
如果你在项目视图里选取资产,这个资产引入的设置将在检视器面板(属性)里显示。显示的选项将基于那个选择的资产类型修改。
4) Adding Asset to the Scene 添加资产到场景
14
内部资料 注意保存
从项目视图(面板)单点和拖动网格到层次(面板)或场景视图去添加它到场景。当你拖动一个网格到场景时,你正在建立一个拥有一个网格渲染的游戏对象。如果你正在使用一个纹理或一个声音文件工作,你必须增加它到一个场景或项目已经存在的游戏对象。
5) Putting Different Assets Together 组合不同的资产
这里是最常见的资产间关系的简要说明。
A Texture is applied to a Material
纹理应用于一个材料
A Material is applied to a GameObject (with a Mesh Renderer Component)
材料应用于一个游戏对象(有一个网格渲染的组件)
An Animation is applied to a GameObject (with an Animation Component)
动画应用于一个游戏对象(有一个动画组件)
A sound file is applied to a GameObject (with an Audio Source Component)
声音文件应用于一个游戏对象(有一个音频源组件)
6) Creating a Prefab 创建预制品
预制品是一个可以在场景里重复使用的游戏对象或组件的集合。几个同样的对象可以从一个简单的预制品创建,称为实例。以树为例,创建一个树预制品允许实例化几个同样的树以及在场景里放置它们。因为这些树是都连接到这个预制品,任何的改变传输至这个预制品,将自动地应用于所有树的实例。因此如何你想去修改网格、材料、或别的东西,仅需要在预制品里做一次修改,而所有其它的树继承这个修改。也可以对一个对象做出修改,然后从主菜单里选择GameObject->Apply Changes to Prefab(游戏对象->将修改应用于预制品)。这可以在资产的配置和更新期间节省许多的时间。
当一个包含多个组件和一个子游戏对象的层次,你可以制作一个顶级的(或根的)游戏对象的预制品,然后重复使用整个游戏对象的集合。
考虑一个预制品作为一个游戏对象架构的蓝图。所有预制品克隆是同样的蓝图。因此,如何蓝图被更新,因而是所有的克隆。
有不同的方法你可以改变一个更新的克隆和应用那些蓝图更改预制品本身。
要阅读更多有关使用和更新预制品,请查看预制品页。
在你的场景里从一个游戏对象实际创建一个预制品,首先,在你的项目视图(面板)里创建一个新的预制品。命名这个新的预制品;然后,在场景里点击你想制作成预制品的游戏对象。拖动它到新的预制品,同时,你应当看到这个游戏对象的名称文本变蓝。现在已经创建了一个重复使用的预制品。
7) Updating Assets 更新资产
已经引入、实例化和连接资产到一个预制品。现在,当编辑源资产,只需从项目视图(面板)里双击它。适当的应用程序将启动,以及可以做想的任意修改。当完成更新它,只需保存它。然后,当你转回到Unity,更新将被发现,以及资产将被重新引入。资产连接到的预制品将保持不变。所以,这个效果将看到,你的预制品将更新。这就是你必须知道更新资产,只需打开并保存。
2.3. Creating Scenes 创建场景
Unity Manual > User Guide > Unity Basics > Creating Scenes
场景包含游戏的对象。它们可以被用于创建一个主菜单、个人级别、以及其它东西。思考每一个独立场景做为单一级别文件。在每个场景里,你将放置你的环境、障碍和装饰,主要设计和建造游戏部件。
15
内部资料 注意保存
1) Instancing Prefabs 实例化预制品
使用上一节所述方法去创建一个预制品。还可以阅读更多关于预制品细节在这里。一旦已经建立一个预制品,可以快速和方便的利用预制的副本,称为一个实例。要创建任何预制品的一个实例,从项目视图拖动预制品到层次面板或场景视图,现在有一个你预制品的一个独特的实例去安置和调整你想要的。
2) Adding Component & Scripts 添加组件和脚本
当你有一个预制品或任何突出显示的游戏对象,通过使用组件,你可以添加附加的功能。请查看关于所有不同组件的组件参考详细资料。脚本是组件的一个类型。添加一个组件,只需突出显示你游戏对象和从组件菜单选择一个组件。你将看到这个游戏对象的组件显示在检视器面板里,脚本也是同样包含在组件默认菜单里。
如果添加一个组件断开了游戏对象的连接到它的预制品,你总可以从菜单使用GameObject->Apply Changes to Prefab(游戏对象->应用更改到预制品)去重建这个链接
3)
Placing GameObjects 放置游戏对象
一旦你的游戏对象在场景里,你可以使用变换功能工具去安置它到你喜欢的地方。此外,你可以使用检视器面板里变换属性值去精确调整位置和旋转。请查看更多信息关于位置和旋转游戏对象的变换组件页面。
4)
Working with Cameras 用摄像机工作
摄像机是你游戏的眼睛。播放器的每件事物在播放时是通过一个或多个摄像机看到。你可以决定位置、旋转以及子类化摄像机只需像任何其它游戏对象。一个摄像机仅是和一个游戏对象使用一个摄像机组件连接。因此它可以做一个游戏对象可做的任何事情,然后也做一些摄像机特定的功能。还有一些有用的摄像机脚本,与标准的资产包安装,当你创建一个新的项目时。 你可以发现它们从菜单。你从Components->Camera-Control(组件->摄像机-控制)。阅读关于摄像机,查看摄像机组件页 。
5)
Lights 灯光
除了一些极少数情况下,你永远需要添加光到你的场景。有三种不同类型的光,以及他们互相有一点不同行为。重要的事情是,它们添加大气层和氛围到你的游戏。不同的光可完全改变你的游戏状态,以及有效地使用光将是一个重要课题学习。要了解有关不同的光,请查看光组件页 。
2.4. Publishing Builds 发布编译
Unity Manual > User Guide > Unity Basics > Publishing Builds
Unity 手册->用户指南->Unity 基础->发布编译
在任何时候,在你创建你的游戏过程中,你可能希望看到作为独立的或网格播放器外观当你编译并运行它时。本节将说明如何访问生成设置和如何创建你的游戏的不同版本。
1)
File->(文件->生成设置…)是菜单项用于访问生成设置窗口。它弹出一个包含当你创建你的游戏时的场景编辑列表
The Build Settings window 生成设置窗口
16
内部资料 注意保存
首先,你在项目面板里看到这个窗口。它将显示空白。如果你创建的你的游戏当它的清单是空白时,仅当前打开的场景将被包含在生成里。如果你想快速的生成一个仅用一个场景文件的测试播放器,只需生成一个使用空白场景清单的播放器。
很容易的添加场景文件到多场景生成的清单里。有两种方法去添加它们。第一种方法是点击Add
Current(添加当前)按钮。你将看到当前打开的场景显示在清单里。第二种添加场景文件的方法是从项目面板拖动它们到这个清单。
在这一点上,注意每一个你的场景有一个不同的索引值。场景0是当你生成游戏时将被装入的第一个场景。
当你想装载一个新的场景,在你的脚本内部使用vel()。
如果你已经添加了多于一个场景文件并想重新排列它们,仅仅点击和拖动这个场景到上面或低于其它场景直到你希望的顺序。
如果你想从清单中移除一个场景,点击去突出显示这个场景并按Command-Delete键(在windows里按Delete键),场景将从清单里消失并不在被包含在生成里
当你准备好去发布你的生成,选择一个生成目标并按生成按钮。你将能选择一个名称和使用标准保存对话框的游戏的定位。当你点击保存,Unity快速生成你游戏。就这么简单。如果你不确定你生成的游戏保存在哪里,考虑保存它到项目的根文件夹里。你不能保存生成到资产文件夹里。
启用压缩纹理复选框,当它生成时将压缩项目中的所有纹理。你仅需要压缩一个纹理一次,但第一次你处理压缩可能需要几分钟。当你在压缩它们后更新资产,它们将在下一次你建立一个播放器重新被压缩。或者,你可以在引入之上启用纹理压缩,从菜单 Unity->Preferences
(参数设置)(在windows里是 Edit->Preferences)。
启用脚本符号调式复选框,将移除调式信息重生成播放器里(File->Build Setting…或File->Build &Run菜单设置)。这将减少发布的游戏文件的大小。以便完成游戏的优化。Alphas或 betas应该用于调试目的的disbled选项。你最终发布总应该启用此选项。(注意,在Unity
2.5 for windows版本里没有找到该选项)
2) Web Player Streaming Web流播放器
流式Web 播放器允许你的Web 玩家游戏开始播放尽快完成场景0的装载。如果你有一个10层次的游戏,在他们开始玩第一层次之前强制玩家等待和下载所有的2-10层次的资产没有多大意义。资产必须以它们显示的顺序场景的文件序列化顺序被下载。一旦包含在场景0的所有资产下载完成,Web播放器将开始播放。
简单的说,流式Web播放器将使得播放器播放快速的播放你游戏。
仅有一件事你需要关心的是,在你装载它之前,检查确保下一个层级你想去装载完成的流。
通常情况下,在一个非流式播放器,你使用如下的代码去装载一个层次:
vel("levelName");
17
内部资料 注意保存
在一个流式Web播放器里,你必须检查这个层级是已经完成的流。通过CanStreamedLevelBeLoaded()函数这样做。这是它的工作原理:
var levelToLoad = 1;
function LoadNewLevel () {
if (eamedLevelBeLoaded (levelToLoad)) {
vel (levelToLoad);
}
}
如果你想显示层次流的进度在播放器里,如一个装载条或其它表现方法,通过方法GetStreamProgressForLevel()你可以读取进度。
3) Inside the build process 内部生成过程
生成过程将放置你指定的地方生成游戏程序的一个空白副本。然后,它将通过在生成设置里的场景列表,一次一个的在编辑器里打开它们、优化它们并结合它们到应用程序包里。它也将计算包括场景和存储数据在一个独立文件在应用程序内部包里的需要的所有资产。
任何被标记为“EditorOnly”的场景里的游戏对象将不被包含在发布生成里。对于调试脚本是非常有用的,在最终游戏里不需要包含。
当一个新的层次装载,在以前层次里的所有游戏对象被销毁。为了避免这种情况,在任何你不想销毁的对象上使用DontDestroyOnLoad()。这最常用于保持音乐播放在装载一个层次时、或为游戏控制脚本保持游戏状态或进展。
一个新的层次装载完成后,信息:OnLevelWasLoaded() 将被发送到所有活动的游戏对象。
如何最佳建立一个多场景游戏的更多信息,例如:实例化一个主菜单,高分辨率屏幕以及真实的游戏层次,查看脚本教程文件。(文件)
4) Preloading 预装入
发布生成自动预装入场景里的所有资产当场景装载时。这个例外的规则是场景0.这是因为第一个场景通常是启动动画,那个你想尽可能的尽快显示。
为了确保你所有的内容是预装入的,你可以创建一个空的场景,调用vel(1)。在生成设置使这个空的场景的索引为0。所有后来的层次将被预装入。
5) You're ready to build games 你已准备好去生成游戏
现在,你已经学会了如何使用Unity的界面,如何使用资产,如何建立场景,以及如何发布你的生成。没有什么阻止你建立你的梦幻游戏。你将当然沿着这个路学习更多,我们在这里帮组。
要学习关于使用Unity它自己的更多详细信息,你可以继续阅读本指南后面的手册。
要了解更多组件、游戏行为的更多细节,请阅读组件参考。
要了解更多关于脚本,请阅读脚本参考。
要了解更多关于创建资产技巧,请阅读本手册的资产章节。
与Unity用户和开发者团体互动,访问Unity论坛。你可以提出问题,共享醒目、建立团队、你想做的任何事情。至少访问一次论坛,因为我们想看到你制作的惊人游戏。
2.5. Prefabs 预制品
Unity Manual > User Guide > Building Scenes > Prefabs
用户手册->用户指南->建立场景->预制品
18
内部资料 注意保存
预制品是一个资产的类型,一个存储在项目视图(面板)里可以重复使用的GameObject(游戏物体)。预制品可以被插入任何数量的场景、每个场景多次。当添加预制品到一个场景,创建一个预制品的实例。所有的预制品实例被连接到原始的预制品,本质上是它自己的复制品(克隆)。任何更改到预制品将被应用于所有的实例。
1) Creating Prefabs 创建预制品
为了创建一个预制品,必须使用菜单件建一个新的空白预制品。这个空的预制品不包含GameObject(游戏物体),也不能创建一个它的实例。把一个新的预制品作想象为一个空的容器,等待被用GameObject数据填充。
一个新的空预制品,它不能被实例化直到你用一个GameObject填充它。去填充这个预制品,使用一个你已经在场景里创建的GameObject。
1、 从菜单条选择Assets->Create->Prefab并命名你新的预制品。
2、 在层次视图(面板)里,选取你希望去制成一个预制品的GameObject
3、 从层次拖放这个GameObject 到在项目视图里的那个新的预制品上。
你处理完这些步骤之后,GameObject以及所有它的子已经被复制到预制品的数据里。预制品现在可以被重复使用在多个实例里。在层次里的原始GameObject现在已经变成预制品的一个实例。
2) Prefab Instances 预制品实例
在当前场景创建一个预制品实例,从项目视图里拖动预制品到场景里或层次视图里。这个实例被连接到预制品,在项目视图里它们的名称用蓝色文本显示。
GameObjects中的三个连接到预制品,有一个没有连接。
如果你已经选取了一个预制品实例,并想对更改一个而影响所有的实例,你可以在检视器里点击Select按钮去选取源预制品。
关于从脚本实例化预制品的信息在安装预制品页。
3) Inheritance 继承
集成意味着只要源预制品改变,这些改变都适用于所有连接的GameObject。例如,如果你添加一个新的脚本到预制品,所有连接的GameObject将也立即包含脚本。然而,它是有可能改变一个单一实例的属性,同时保持原有的连接。简单改变任意的一个预制品实例的属性,变量名称变为粗体显示。这个变量现在是覆盖。所有覆盖的变量将不受更改影响在源预制品里。
允许你修改预制品实例使它们独立从它们源预制品,没有打破预制品连接。
A linked GameObject with no overrides enabled. 一个没有覆盖GameObject连接启用
一个有覆盖GameObject的连接启用
19
内部资料 注意保存
如果你想更新源预制品以及所有的实例用新覆盖值,你可以点击Apply(应用)按钮在检视器里。
如果你想放弃所有的覆盖在一个特殊的实例上,你可以点击Revert(还原)按钮
4) Breaking and Restoring Prefab Links 断开与恢复预制品连接
有确定的操作将断开一个单一实例与它们源预制品之间的连接,但连接可以总被恢复。断开连接的方法:
Adding or removing a Component 添加或移除一个组件
Adding or removing a child GameObject 添加或移除一个子GameObject
这些操作将提示一个警告/确认断开连接消息框。确定操作将断开连接使改变源预制品将不在影响端口的实例。恢复连接,你可以点击任一的Reconnect(重新连接)或Apply(应用)按钮在实例的检视器里。
Reconnect(重新连接)将放弃从源预制品的所有差异。
Apply(应用)将复制所有差异到源预制品(因此,含有所有其它预制品实例)
5) Imported Prefabs 引入预制品
当你放置一个网格资产到你的资产文件夹,Unity自动的引入文件和生成一些类似于一个用网格制成的预制品。这不是一个实际的预制品,仅仅是一个资产文件本身。实例和资产的工作引入了一些限制,当与正常预制品一起工作时不存在。
Notice the asset icon is a bit different from the Prefab icons 注意资产图标是异于预制品图标。
资产是在场景里作为一个GameObject实例,连接到源资产而不是一个正常的预制品。组件可以正常的从一个GameObject被添加和移除。然而,你不能应用任何改变到资产它本身因为这将添加数据到资产文件本身。如果要创建的东西想重复使用,你应该使资成为一个预制品,跟随在“创建预制品”栏目下列出的步骤。
当以已经选取了一个资产实例,在检视器里的Apply(应用)按钮被替换为一个Edit(编辑)按钮。点击这个按钮将启动你的资产编辑应用程序(例如 Maya 或MAX)。
20
内部资料 注意保存
2.6. Lights 光源
Unity Manual > User Guide > Building Scenes > Lights
光源是每个场景的基本部分。当网格和纹理定义场景的外观和形状的时候,光源定义你的3D环境的颜色和状态。你或许希望在每个场景里使用多个光源工作。使它们一起工作需要稍加练习但结果可能是非常惊人的。
A simple, two-light setup 一个简单的,两个光源设置。
光源可以从GameObject->Create Other被添加到你场景。有三种类型的光源,我们将在组件里讨论它们。一旦一个光源被添加,你可以操纵它像操纵其它的任何GameObject一样。另外,通过使用Component->Rendering->Light你可以添加一个光源到任何一个选取的GameObject。
在检视器里光源组件有许多不同的选项。
21
内部资料 注意保存
Light Component properties in the Inspector 在检视器里的光源组件属性。
通过简单修改光源的颜色,你可以给场景完全不同的状态。
Bright, sunny lights 明亮,阳光光源
22
内部资料 注意保存
Dark, medieval lights 黑暗,中世纪光源
Spooky night lights 幽灵夜间光源
2.7. Cameras 摄像机
Unity Manual > User Guide > Building Scenes > Cameras
正如摄像机用于电影显示故事给观众,在Unity里摄像机用于显示游戏世界给玩家。在一个场景里,你总是拥有至少一个摄像机,但你可以拥有超过一个的摄像机。多个摄像机可以给你两个玩家分屏或建立高级的客户效果。你可以动画摄像机,或物理控制它们。你可以设想
23
内部资料 注意保存
几乎任何事情是摄像机发生的已经你可以使用典型的或独特的摄像机以适合你的游戏的风格。
剩余的文本来自于摄像机组件引用页。
Camera 摄像机是捕获和展示世界该玩家的设备。通过定制和操纵摄像机,你可以使你的游戏真正独一无二的展示。在场景里你可以拥有不限数量的摄像机。它们可以被设置为任何顺序渲染、在屏幕的任何地方或仅是屏幕的以部分。
Unity's flexible Camera object Unity的灵活的设计摄像机对象。
Properties 属性
Clear Flags
清除标志
Background color
背景颜色
Normalized View Port Rect
标准视口矩形
X
Y
Width 宽度
Height 高度
Near clip plane近剪辑平面
Far clip plane 远剪辑平面
Field of view 视界
Orthographic 正交投影
Depth 深度
Culling Mask 剔除面具
确定屏幕的哪些部分将被清除。这是方便的当使用多个摄像机去绘制不同游戏元素时。
颜色应用于在所有在视图里的元素已经被绘制和没有天空盒之后的屏幕的剩余部分。
四个值在屏幕上指定哪里,摄像机视图将被绘制,在场景里相配(值 0-1)
摄像机视图开始的水平位置将被会绘制。
摄像机视图开始的垂直位置将被会绘制。
摄像机输出到屏幕上的宽度
摄像机输出到屏幕上高度
相对于摄像机的最近点绘制将出现。
相对于摄像机的最远点绘制将出现。
axis.摄像机视角的宽度,沿本地y轴度量。
去模拟远景
在绘制顺序里的摄像机的位置。拥有一个高深度的摄像机将紧接着所有低深度值的摄像机被绘制。
通过摄像机渲染包含或剔除对象的层。 在检视器里指定层到你的对象。
Orthographic size 正交投影大小 当它是正交投影时,摄像机的视口大小。
Render Target (Unity Pro only)
引用一个包含摄像机视图输出的渲染纹理。使这个纹理将停渲染目标(Unity专业版仅有) 用这个摄像机的性能去渲染屏幕。
Details 详细资料
24
内部资料 注意保存
给玩家显示你的游戏摄像机是必需的。它们可以被定制、脚本或父类化取得恰当的任何可想象效果类型。对于一个益智游戏,你也许保持益智游戏全景视图的静态摄像机。对于一个第一人称射击,你将父类化摄像机给玩家角色以代替角色的视觉水平。对于赛车游戏,你可能希望有摄像机根须你的玩家的汽车。
你可以创建多个摄像机并指定每个摄像机不同的深度。摄像机从低深度到高深度绘制。换句话说,一个拥有深度2的将紧接着深度为1的被绘制。你可以调整水平视口矩形属性的值去调整大小和摄像机的视图在屏幕上的位置。这可以创建多个小视图就像发射物齿轮、地图窗口,后视镜等等。
1) Clear Flags 清除标志
当摄像机渲染它的视图时,每个摄像机存储颜色和深度信息。 屏幕的一部分是不绘制是空的,将默认被显示为天空。当你使用多个摄像机,每个摄像机存储它自己颜色和深度信息在缓存里、积累多的数据做个每个摄像机渲染。做为任一特殊的摄像机在你的场景里渲染它自己的视图,你可以设置清除标志去清除不同缓存信息的集合。这样做通过四个选项之一:
2) Skybox 天空盒
这是默认设置。任何场景的空白部分将先显示当前摄像机的天空盒。如果当前摄像机没有天空盒设置,它将默认为在渲染设置里(在Edit->Render Settings里找到)选择的天空盒。此后,它将回退到背景颜色。
3)
4)
Solid Color 纯色
Depth Only 独立深度
屏幕的任何空白部分将显示当前摄像机的背景颜色。
如果你想去绘制一个玩家的枪 没有让它获得环境内侧剪辑,你应该设置摄像机在深度0绘制环境,其它摄相象在深度1绘制独立武器。武器摄像机的清除标志应该被设置为唯一深度。这将保持屏幕上环境图片显示,但是丢弃所有有关的每个对象存在于3D空间的地点信息。当枪被绘制时,不透明部分将完全覆盖任何事物绘制,不管抢是如何接近墙。
The gun is drawn last, after clearing the depth buffer of the cameras before it
抢被最后一次绘制,在摄像机的深度缓存清除前后。
5) Don't Clear 不清除
这个模式不清除任一的颜色或深度缓存。其结果是每帧被绘制在下一个之上,造成在一抹黑里的效果。在游戏里这不经常使用,有可能最好使用一个定制的阴影。
25
内部资料 注意保存
6) Clip Planes 剪辑平面
近处和远处剪辑面属性决定摄像机视图开始与结束的地方。平面是垂直布局于摄像机的方向并从它自己的位置来衡量。近处剪辑是接近渲染的本地,远处剪辑是最远的。
剪辑的平面同样确认缓存精度如何分布在场景上。一般而言,去获得较好的精度你应该移动近处剪辑尽可能的远。
7) Culling Mask 剔除面具
剔除面具被用于选择性的渲染对象组使用的层。使用层的更多信息在这里。
一般地,一个良好的做法是把你的用户界面放置一个不同的层,然后渲染它它,利用各自摄像机设渲染它自己的UI层。
为了用户界面(UI)显示在其它摄像机的上面,你应该同样需要设置清除标志为单独深度并确定UI摄像机的深度是比其它摄像机高的高度。
8) Normalized Viewport Rectangle 标准视口矩形
标准视口矩形是特定定义一个屏幕的某一部分,当前摄像机视图将被绘制在上面。你可以放置一个地图视图在屏幕右手下角落里,或一个导弹提示视图在左上角。就设计工作的一点,你可以使用视口矩形去创建一些独特的行为。
使用标准视口矩形很容易创建两个玩家分屏效果。在你已经建立两个摄像机之后,更改两个玩家之一的Ymin(y最小值)值为0.5,已经两个玩家的Ymax(y最大值)为0.5。这将使玩家之一的摄像机从屏幕的中部向上到顶部显示,以及第二个玩家的摄像机将开始在底部及停止在屏幕的中部。
Two-player display created with Normalized Viewport Rectangle 两个玩家显示利用标准视口矩形创建的。
9) Orthographic 正交投影
使一个摄像机作为正交投影从摄像机的视图里删除所有透视。这是通常用于做等角(正交)或2D游戏。
26
内部资料 注意保存
Perspective camera 透视摄像机.
Orthographic camera. Objects do not get smaller with distance here! 正交摄像机,对象不再获得小的位距这里!
10) Render Texture 渲染纹理
这个特性仅是Unity 专业版本据有的许可(不适用于Unity iPhone的任何版本)。它将放置摄像机视图在一个纹理上,然后可以被用于其它对象。这很容易的去创建体育场检视器,检视摄像机,反射等。
27
内部资料 注意保存
A Render Texture used to create a live arena-cam 一个渲染纹理被用于创建一个实况转播体育场
11) Hints 提示
摄像机可以被实例化、父类化、以及脚本化就像任何其它GameObject(游戏物体)。
为增加场景的速度感在一个赛车游戏里,使用高可视区。
摄像机可以被用于物理仿真里如果你添加一个刚体组件。
没有限制你拥有的摄像机的数量在你的场景里。
正交投影摄像机可以制作3D用户界面。
如果你遇到史前古物深度技巧(表面接近的彼此闪烁),尝试设置近处平面尽可能的大。
摄像机不能渲染游戏场景和一个渲染纹理在同一时间,统一时间只能一个。
专业版许可者拥有渲染的一个摄像机视图的渲染选项对一个纹理,称为渲染到纹理,为了更独特的效果。
Unity配置了预安装摄像机脚本,在Components->Camera Control里找到。实验它们去获得可能发生的什么体验。
2.8. Particle Systems粒子系统
Unity Manual —> User Guide > Building Scenes > Particle Systems
粒子本质上是2D图象在3D空间的渲染。它们主要用于诸如烟,火,水飞沫,或树叶的装饰。一个 粒子系统由三个独立的组件组成: 粒子发射器, 粒子动画,以及 粒子渲染。如果你想建一个静态粒子,你可以使用一个粒子发射器和渲染结合处理。动画的粒子会移动不同的方向的粒子和改变颜色的粒子。你还可以在粒子系统中通过脚本访问每个粒子,因此,你可以选择创建自己独特的行为方式。
粒子脚本参考 请查看这里。
此网页的文本的其余部分是来之 粒子组件参考 页。
Particle Components粒子组件
Particle Systems 粒子系统
28
内部资料 注意保存
在Unity中,粒子系统通常用来制造烟雾,蒸气,火及其他大气的效果。粒子系统通过使用一个或两个纹理的多次绘制的操作,建立一个混乱的效果。
A Particle System included in the Standard Assets
标准资产包含的一个粒子系统
A typical Particle System in Unity is an object that contains a Particle Emitter, a Particle Animator and a
Particle Renderer. The Particle Emitter generates the particles, the Particle Animator moves them over time,
and the Particle Renderer draws them on the screen.
在Unity中,一个典型的粒子系统是一个对象,它包含一个粒子发射器、一个粒子动画和一个粒子渲染。粒子发射器产生所有的粒子,粒子动画随着时间移动它们,粒子渲染在屏幕上绘制它们。
If you want your particles to interact with the world, add a Particle Collider Component to the GameObject.
如果你希望你的粒子与游戏结合,添加一个粒子对撞机组件到一个GameObject。(游戏对象)
1) Ellipsoid Particle Emitter 椭圆体的粒子发射器
The Ellipsoid Particle Emitter spawns particles inside a sphere. Use the Ellipsoid property below to scale &
stretch the sphere.
椭圆体的粒子发射器在一个球面范围内产生粒子。使用椭圆体的伸展刻度属性在球面范围内进行伸展(放大或缩小)。
29
内部资料 注意保存
The Ellipsoid Particle Emitter Inspector
椭圆体粒子发射器检视板
Properties 属性
Emit If enabled, the emitter will emit particles.
如勾选,发射器发射粒子
The minimum size each particle can be at the time when it is spawned.
产生粒子时的每个粒子的最小尺寸
The maximum size each particle can be at the time when it is spawned.
产生粒子时的每个粒子的最大尺寸
The minimum lifetime of each particle, measured in seconds.
以秒计算,每个粒子最小生存期
The maximum lifetime of each particle, measured in seconds.
以秒计算,每个粒子最大生存期
The minimum number of particles that will be spawned every second.
每秒钟产生粒子的最小数量
The maximum number of particles that will be spawned every second.
每秒钟产生粒子的最大数量
The starting speed of particles in world space, along X, Y, and Z.
沿x,y,z轴粒子在全局空间的开始速度
The starting speed of particles along X, Y, and Z, measured in the object's orientation.
以物体的方向沿x,y,z轴的粒子开始速度
A random speed along X, Y, and Z that is added to the velocity.
沿x,y,z轴增量的随即速度
发射
Min Size
最小尺寸
Max Size
最大尺寸
Min Energy
最小能量
Max Energy
最大能量
Min Emission
最小发射
Max Emission
最大发射
World Velocity
全局速度
Local Velocity
本地速度
Rnd Velocity
随即速度
发射速度缩放
Tangent Velocity
Emitter Velocity Scale The amount of the emitter's speed that the particles inherit.
这个发射器速度数量继承至这些粒子(这个翻译的不明白)
The starting speed of particles along X, Y, and Z, across the Emitter's surface.
交叉发射器的表面,沿x,y,z轴的粒子开始速度
切线速度
在全局空间模拟
One Shot
Simulate In World Space If enabled, the particles don't move when the emitter moves. If false, when you move the emitter,
the particles follow it around.
如勾选,当发射器移动时,粒子不移动。如不勾选,当移动发射器时,粒子跟随移动。
If enabled, the particle numbers specified by min & max emission is spawned all at once. If
30
内部资料 注意保存
一次射击
Ellipsoid
椭圆体
Min Emitter Range
最小发射器范围
disabled, the particles are generated in a long stream.
如勾选,根据指定的粒子最小与最大数立即全部产生。如不勾选,粒子生成一个长的流。
Scale of the sphere along X, Y, and Z that the particles are spawned inside.
粒子产生在沿x,y,z轴伸缩球体的内部。
Determines an empty area in the center of the sphere - use this to make particles appear on the
edge of the sphere.
在球体中心确定一个空的区域,这个区域做为粒子出现的球体边界
Details 详细说明
Ellipsoid Particle Emitters (EPEs) are the basic emitter, and are included when you choose to add a Particle
System to your scene from Components->Particles->Particle System. You can define the boundaries for the
particles to be spawned, and give the particles an initial velocity. From here, use the Particle Animator to
manipulate how your particles will change over time to achieve interesting effects.
椭圆体粒子发射器(EPEs)是基本发射器,当你从Components->Particles->Particle System菜单选择增加一个粒子系统到你的场景时已经包含在其中。
Particle Emitters work in conjunction with Particle Animators and Particle Renderers to create, manipulate, and
display Particle Systems. All three Components must be present on an object before the particles will behave
correctly. When particles are being emitted, all different velocities are added together to create the final
velocity.
粒子发射器与 粒子动画师、粒子渲染协同去创建,处理和显示粒子系统。在粒子正常运转之前,这三个组件必须存在于一个对象上。当粒子被发射,所有不同的速度相加形成粒子最终的速度。
(1)Spawning Properties (粒子)产生属性
Spawning properties like Size, Energy, Emission, and Velocity will give your particle system distinct
personality when trying to achieve different effects. Having a small Size could simulate fireflies or stars in the
sky. A large Size could simulate dust clouds in a musky old building.
当努力达到不同的效果时,产生粒子的属性,像大小、能量、发射和速度将给你的粒子系统独特的特性。一个小的尺寸可以模拟萤火虫或天空中的星星。一个大的尺寸可以模拟古色古香旧建筑物的尘埃。
Energy and Emission will control how long your particles remain onscreen and how many particles can appear
at any one time. For example, a rocket might have high Emission to simulate density of smoke, and high
Energy to simulate the slow dispersion of smoke into the air.
能量和发射将控制你的粒子在任何时间、任意数量的粒子在屏幕上显示多长的时间。例如:一个火箭有高的发射模拟烟雾,和高的能量模拟烟雾在空气中缓慢分散。
Velocity will control how your particles move. You might want to change your Velocity in scripting to achieve
interesting effects, or if you want to simulate a constant effect like wind, set your X and Z Velocity to make your
particles blow away.
31
内部资料 注意保存
速度将控制你的粒子如何移动。你或许想在脚本中更改速度实现有趣的效果,或则,你想模拟像风一样的恒定效果,设置你的X和Z轴的速度吹走你的粒子
(2)Simulate in World Space全局空间模拟
If this is disabled, the position of each individual particle will always translate relative to the Position of the
emitter. When the emitter moves, the particles will move along with it. If you have Simulate in World Space
enabled, particles will not be affected by the translation of the emitter. For example, if you have a fireball that is
spurting flames that rise, the flames will be spawned and float up in space as the fireball gets further away. If
Simulate in World Space is disabled, those same flames will move across the screen along with the fireball.
如这项是禁用的,每个个体粒子的坐标(位置)总转化为相对与该发射器的相对坐标。当发射器移动,粒子将随着该发射器移动。若Simulate in World Space选项是启用的,粒子将不受到发射器变换的影响。例如,你有一个火焰溅射上升的火球,作为火球的火焰将分散并悬浮在空间更远。若Simulate in World Space项是禁用的,这些相同火焰将随着火球在屏幕上一起移动。
(3)Emitter Velocity Scale 发射器速度缩放
This property will only apply if Simulate in World Space is enabled.
这个属性仅适用于Simulate in World Space选项已启动。
If this property is set to 1, the particles will inherit the exact translation of the emitter at the time they are
spawned. If it is set to 2, the particles will inherit double the emitter's translation when they are spawned. 3 is
triple the translation, etc.
若该属性设置为1,这些粒子将在它们产生时原样继承发射器的变化。若设置为2,这些粒子将在它们产生时两倍继承发射器的变化。若设置为2,这些粒子将在它们产生时三倍继承发射器的变化,等等。
(4)One Shot 一次射击
One Shot emitters will create all particles within the Emission property all at once, and cease to emit particles
over time. Here are some examples of different particle system uses with One Shot Enabled or Disabled:
在发射属性内部,一次射击发射将立即建立全部粒子、时间过后发射粒子停止。这里有一些One Shot Enabled 启用 或Disabled禁止的不同粒子系统的例子:
Enabled: 启用
Explosion 爆炸
Water splash 水溅
Magic spell 魔法
Disabled: 禁用
Gun barrel smoke 枪管烟
32
内部资料 注意保存
Wind effect 风效果
Waterfall 瀑布
(5)Min Emitter Range 最小发射范围
The Min Emitter Range determines the depth within the ellipsoid that particles can be spawned. Setting it to 0
will allow particles to spawn anywhere from the center core of the ellipsoid to the outer-most range. Setting it to
1 will restrict spawn locations to the outer-most range of the ellipsoid.
这个最小发射范围确定粒子产生在椭圆体内的深度。设置为0,将允许粒子在从球体的外部边缘到中心的范围内
任何地方产生 ,设置为1,将限制在球体的边缘范围位置产生粒子。
Min Emitter Range of 0
最小范围为0
33
内部资料 注意保存
Min Emitter Range of 1最小范围为1
(6)Hints 提示
Be careful of using many large particles. This can seriously hinder performance on low-level machines. Always try
to use the minimum number of particles to attain an effect.
小心使用多的大粒子。这可能会严重妨碍低级别机器的性能。 总是试着用最小粒子数目达到效果
The Emit property works in conjunction with the AutoDestruct property of the Particle Animator. Through
scripting, you can cease the emitter from emitting, and then AutoDestruct will automatically destroy the
Particle System and the GameObject it is attached to.
发射属性总是与粒子动画的自动毁坏属性一起工作。通过脚本,你可以停止发射器发射,然后自动毁坏属性将自动销毁粒子系统和它所附加游戏对象。
2) Mesh Particle Emitter 网格粒子发射器
The Mesh Particle Emitter emits particles around a mesh. Particles are spawned from the surface of the mesh,
which can be necessary when you want to make your particles interact in a complex way with objects.
网格粒子发射器发射网格状的粒子。当你想让你的粒子与物体一起相互影响时是必要的从网格的表面产生粒子。
34
内部资料 注意保存
The Mesh Particle Emitter Inspector
网格粒子发射器检视面板
Properties 属性
Emit If enabled, the emitter will emit particles.
若启用,发射器将发射粒子
The minimum size each particle can be at the time when it is spawned.
每个粒子在产生时的最小尺寸
The maximum size each particle can be at the time when it is spawned.
每个粒子在产生时的最大尺寸
The minimum lifetime of each particle, measured in seconds.
以每秒钟计,每个粒子最小生存周期
The maximum lifetime of each particle, measured in seconds.
以每秒钟计,每个粒子最大生存周期
The minimum number of particles that will be spawned every second.
每秒钟将产生粒子的最小数量
The maximum number of particles that will be spawned every second.
每秒钟将产生粒子的最大数量
The starting speed of particles in world space, along X, Y, and Z.
沿X,Y,Z轴在全局空间的开始速度
The starting speed of particles along X, Y, and Z, measured in the object's orientation.
以物体的方向,沿X,Y,Z轴粒子的开始速度
A random speed along X, Y, and Z that is added to the velocity.
沿X,Y,Z轴随即增加的速度
The amount of the emitter's speed that the particles inherit.
从粒子继承的发射器的速度数量
The starting speed of particles along X, Y, and Z, across the Emitter's surface.
交叉通过发射器的表面沿X,Y,Z轴的粒子开始速度
发射
Min Size
最小尺寸
Max Size
最大尺寸
Min Energy
最小能量
Max Energy
最大能量
Min Emission
最小发射
Max Emission
最大发射
World Velocity
全局速度
Local Velocity
局部速度
Rnd Velocity
随即速度
Emitter Velocity Scale
发射器速度伸缩
Tangent Velocity
切线速度
35
内部资料 注意保存
Simulate In World Space If enabled, the particles don't move when the emitter moves. If false, when you move the
空间模拟
One Shot
emitter, the particles follow it around.
若启用,当发射器移动,粒子不移动。若禁用,等发射器移动,粒子随着一起移动
If enabled, the particle numbers specified by min & max emission is spawned all at once. If
disabled, the particles are generated in a long stream.
若启用,根据最小与最大属性指定的粒子数量立即产生粒子。若禁用,则产生一个粒子流
一次射击
Interpolate Triangles
插入三角形
If enabled, particles are spawned all over the mesh's surface. If disabled, particles are only
spawned from the mesh's vertrices.
若启用,粒子从网格表面的产生,若禁用,则只从网格的顶部产生
Systematic If enabled, particles are spawned in the order of the vertices defined in the mesh. Although
you seldom have direct control over vertex order in meshes, most 3D modelling applications
have a very systematic setup when using primitives. It is important that the mesh contains
no faces in order for this to work.
若启用,粒子在网管的顶部定义顺序产生,尽管你很少直接在网格顶部控制,多数的3D模型程序在使用一个系统的建立元素。重要的是这些网格包括不表面的顺序工作
系统性
Min Normal Velocity Minimum amount that particles are thrown away from the mesh.
粒子远离网格的最小数量
Maximum amount that particles are thrown away from the mesh.
粒子远离网格的最大数量
最小正常速度
Max Normal Velocity
最大正常速度
Details 详细说明
Mesh Particle Emitters (MPEs) are used when you want more precise control over the spawn position &
directions than the simpler Ellipsoid Particle Emitter gives you. They can be used for making advanced
effects.
当你想在更精确控制粒子产生位置与流向而简单的Ellipsoid Particle Emitte 不能提供时,使用网格粒子发射器(MPEs)。它们能够创造高级的效果。
MPEs work by emitting particles at the vertices of the attached mesh. Therefore, the areas of your mesh that
are more dense with polygons will be more dense with particle emission.
MPEs发射粒子工作在所附网格的顶部。因此,你的网格区域是更密集的与多边的密集粒子发射区域。
Particle Emitters work in conjunction with Particle Animators and Particle Renderers to create, manipulate, and
display Particle Systems. All three Components must be present on an object before the particles will behave
correctly. When particles are being emitted, all different velocities are added together to create the final
velocity.
粒子发射器与粒子动画、粒子渲染协同工作去创建、处理和显示粒子系统。在粒子正常运转前,三个组件必须一同存在于一个物体上。当粒子开始发射,所有不同的速度相加形成最终的速度。
(1)Spawning Properties (与上面的含义相同)
Spawning properties like Size, Energy, Emission, and Velocity will give your particle system distinct
personality when trying to achieve different effects. Having a small Size could simulate fireflies or stars in the
sky. A large Size could simulate dust clouds in a musky old building.
36
内部资料 注意保存
Energy and Emission will control how long your particles remain onscreen and how many particles can appear
at any one time. For example, a rocket might have high Emission to simulate density of smoke, and high
Energy to simulate the slow dispersion of smoke into the air.
Velocity will control how your particles move. You might want to change your Velocity in scripting to achieve
interesting effects, or if you want to simulate a constant effect like wind, set your X and Z Velocity to make your
particles blow away.
(2)Simulate in World Space (与上面的含义相同)
If this is disabled, the position of each individual particle will always translate relative to the Position of the
emitter. When the emitter moves, the particles will move along with it. If you have Simulate in World Space
enabled, particles will not be affected by the translation of the emitter. For example, if you have a fireball that is
spurting flames that rise, the flames will be spawned and float up in space as the fireball gets further away. If
Simulate in World Space is disabled, those same flames will move across the screen along with the fireball.
(3)Emitter Velocity Scale (与上面的含义相同)
This property will only apply if Simulate in World Space is enabled.
If this property is set to 1, the particles will inherit the exact translation of the emitter at the time they are
spawned. If it is set to 2, the particles will inherit double the emitter's translation when they are spawned. 3 is
triple the translation, etc.
(4)One Shot (与上面的含义相同)
One Shot emitters will create all particles within the Emission property all at once, and cease to emit particles
over time. Here are some examples of different particle system uses with One Shot Enabled or Disabled:
Enabled:
Explosion
Water splash
Magic spell
Disabled:
Gun barrel smoke
Wind effect
Waterfall
(5)Interpolate Triangles 插入三角形
Enabling your emitter to Interpolate Triangles will allow particles to be spawned between the mesh's vertices.
This option is off by default, so particles will only be spawned at the vertices.
启动你的发射器的插入三角形将允许粒子在网格顶部产生。这个选项默认是关闭的。因此,粒子只在在顶部产生。
37
内部资料 注意保存
A sphere with Interpolate Triangles off (the default)
一个带插入三角形关闭的球体(默认)
Enabling this option will spawn particles on and in-between vertices, essentially all over the mesh's surface
(seen below).
启动该选项,将在网格表面顶部产生粒子。(看下面)
38
内部资料 注意保存
A sphere with Interpolate Triangles on
一个带打开插入三角形的球体
It bears repeating that even with Interpolate Triangles enabled, particles will still be denser in areas of your
mesh that are more dense with polygons.
值得重申的是,即使插入三角形启动,粒子仍然在你的网格区域密集多边型。
(6)Systematic
系统性
Enabling Systematic will cause your particles to be spawned in your mesh's vertex order. The vertex order is
set by your 3D modeling application.
开启系统性,将导致你的粒子在你的网格顶点顺序产生。顶点顺序的设置有你的3D模型程序设置。
39
内部资料 注意保存
An MPE attached to a sphere with Systematic enabled
一个MPE附在一个开启系统性的球体上
(7)Normal Velocity 正常速度
Normal Velocity controls the speed at which particles are emitted along the normal from where they are
spawned.
正常速度控制哪个粒子从它们产生的地方沿正常发射速度来到。
For example, create a Mesh Particle System, use a cube mesh as the emitter, enable Interpolate Triangles,
and set Normal Velocity Min and Max to 1. You will now see the particles emit from the faces of the cube in a
straight line.
例如,建立一个网格粒子系统,使用一个立方体的网格作为发射器,启用插入三角形,设置正常最小速度与最大速度为1.你将看到粒子从立方体表面成一个直线发射。
(8)See Also 参阅
How to make a Mesh Particle Emitter
如何构造一个网格发射器
(9)Hints (与上面相同)
40
内部资料 注意保存
Be careful of using many large particles. This can seriously hinder performance on low-level
machines. Always try to use the minimum number of particles to attain an effect.
The Emit property works in conjunction with the AutoDestruct property of the Particle Animator.
Through scripting, you can cease the emitter from emitting, and then AutoDestruct will automatically destroy
the Particle System and the GameObject it is attached to.
worlds.
MPEs can also be used to make glow from a lot of lamps placed in a scene. Simply make a mesh with
one vertex in the center of each lamp, and build an MPE from that with a halo material. Great for evil sci-fi
3) Particle Animator 粒子动画
Particle Animators move your particles over time, you use them to apply wind, drag & color cycling to your
particle systems.
粒子动画随着时间移动你的粒子,你使用它们引用到风上,拖动你的颜色板到你的粒子系统。
The Particle Animator Inspector
粒子动画检视面板
Properties 属性
Does Animate Color If enabled, particles cycle their color over their lifetime.
做动画颜色
Color Animation
若启用,粒子循环它们的颜色超过它们的生命周期
The 5 colors particles go through. All particles cycle over this - if some have a shorter life span
than others, they will animate faster.
5种颜色粒子通过。所有粒子循环- 若有一些粒子生命比其它的短,它们的动画更快。
颜色动画
World Rotation Axis An optional world-space axis the particles rotate around. Use this to make advanced spell effects
全局旋转轴
or give caustic bubbles some life.
粒子围绕一个可选的全局空间轴旋转。使用这个可以制造高级的魅力效果或给予一个腐蚀性的生命气泡。
Local Rotation Axis An optional local-space axis the particles rotate around. Use this to make advanced spell effects
本地旋转轴 or give caustic bubbles some life.
粒子围绕一个可选的本地空间轴旋转。使用这个可以制造高级的魅力效果或给予一个腐蚀性的生命气泡。
Size Grow Use this to make particles grow in size over their lifetime. As randomized forces will spread your
41
内部资料 注意保存
尺寸增长
particles out, it is often nice to make them grow in size so they don't fall apart. Use this to make
smoke rise upwards, to simulate wind, etc.
使用这个制造粒子增长大小超过它们的生命周期。作为随即力量将向外伸展你的粒子,通常使它们很好的增长尺寸不至于使它们下落崩溃。应用这个处理烟幕的上升,模拟风 等等。
Rnd Force A random force added to particles every frame. Use this to make smoke become more alive.
一个随即强制增加粒子每个帧。使用它处理烟雾更生动。
The force being applied every frame to the particles, measure relative to the world.
相对于全局的数量,强制对粒子每帧起作用
How much particles are slowed every frame. A value of 1 gives no damping, while less makes
them slow down.
许多的粒子每帧变慢。在它们放慢过程中衰减值没有设为1
随即强制
Force
强制
Damping
衰减
Auto destruct
自动销毁
If enabled, the GameObject attached to the Particle Animator will be destroyed when all particles
disappear.
若启动,当所有的粒子消失时附加在动画粒子的游戏物体将销毁
Details 详细信息
Particle Animators allow your particle systems to be dynamic. They allow you to change the color of your
particles, apply forces and rotation, and choose to destroy them when they are finished emitting. For more
information about Particle Systems, reference Mesh Particle Emitters, Ellipsoid Particle Emitters, and Particle
Renderers.
粒子动画允许你的粒子系统是动态的。它们允许你更改你的粒子的颜色,应用强制和旋转,和选择当它们发射完毕销毁它们。更多的关于粒子系统的信息,参见 网格粒子发射器,椭球粒子发射器和 粒子渲染。
(1)Animating Color 动画颜色
If you would like your particles to change colors or fade in/out, enable them to Animate Color and specify the
colors for the cycle. Any particle system that animates color will cycle through the 5 colors you choose. The
speed at which they cycle will be determined by the Emitter's Energy value.
若你希望你的粒子更改颜色或渐显/淡出,启用它们的Animate Color 并指定颜色的循环周期。任何的粒子系统使用你所选择的5种颜色进行动画颜色的循环。它们的循环速度由发射器的Energy值决定。
If you want your particles to fade in rather than instantly appear, set your first or last color to have a low Alpha
value.
若你想你的粒子渐显而不理解显示,设置你的第一或最后一个颜色为Alpha值
42
内部资料 注意保存
An Animating Color Particle System
一个动画颜色粒子系统
(2)Rotation Axes 旋转轴(坐标)
Setting values in either the Local or World Rotation Axes will cause all spawned particles to rotate around the
indicated axis (with the Transform's position as the center). The greater the value is entered on one of these
axes, the faster the rotation will be.
无论设置本地或全局旋转坐标将导致所有产生粒子围绕坐标旋转(以Transform的中心坐标)值越大进入这些坐标的粒子旋转越快。
Setting values in the Local Axes will cause the rotating particles to adjust their rotation as the Transform's
rotation changes, to match its local axes.
设置本地值将导致旋转粒子以Transform的旋转改变排列一适应本地的坐标。
Setting values in the World Axes will cause the particles' rotation to be consistent, regardless of the Transform's
rotation.
设置全局值将导致粒子的旋转的一致,不管以Transform的旋转。
(3)Forces & Damping 强制与衰减
You use force to make particles accelerate in the direction specified by the force.
你使用强制去处理粒子加速由强制指定的方向。
Damping can be used to decelerate or accelerate without changing their direction:
43
内部资料 注意保存
衰减用于处理加速或减速而不改变它们的方向
A value of 1 means no Damping is applied, the particles will not slow down or accelerate.
值为1表示无衰减使用,这些粒子将不会减慢或加速
A value of 0 means particles will stop immediately.
设为0表示粒子将立即停止
A value of 2 means particles will double their speed every second.
设为2表示粒子将在每秒钟获得两倍的速度
(4)Destroying GameObjects attached to Particles
销毁附加粒子的游戏物体
You can destroy the Particle System and any attached GameObject by enabling the AutoDestruct property.
For example, if you have an oil drum, you can attach a Particle System that has Emit disabled and
AutoDestruct enabled. On collision, you enable the Particle Emitter. The explosion will occur and after it is
over, the Particle System and the oil drum will be destroyed and removed from the scene.
你可以销毁通过启用AutoDestruct属性的粒子系统和任何附加的游戏物体。例如,若你有一个油桶,你可以附加一个发射禁止和自动销毁启用的粒子系统。在碰撞时,你启动粒子发射器。当爆炸发生结束后,粒子系统和油桶将销毁并从场景中移除。
。Note that automatic destruction takes effect only after some particles have been emitted. The precise rules for
when the object is destroyed when AutoDestruct is on:
注意当一些粒子发射后自动销毁的效果就生效。这个精确规则为:当AutoDestruct 开启,物体就销毁
If there have been some particles emitted already, but all of them are dead now, or
If the emitter did have Emit on at some point, but now Emit is off.
如有一些粒子已经发射,但它们现在都死了或这个发射器在一些其它位置在发射,就关闭现在的发射。
(5)Hints 提示
Use the Color Animation to make your particles fade in & out over their lifetime - otherwise, you will get
nasty-looking pops.
使用颜色动画让你的粒子进行渐显和对它们的生命周期处理,否则,你将持久性的污染投影
Use the
Rotation Axes to make whirlpool-like swirly motions.
使用旋转坐标去处理旋窝般的动作。
4) Particle Collider 粒子碰撞
The World Particle Collider is used to collide particles against other Colliders in the scene.
全局粒子碰撞通常用于在场景中与其它粒子碰撞。
44
内部资料 注意保存
A Particle System colliding with a Mesh Collider
一个粒子系统碰撞的网格碰撞
Properties 属性
Bounce Factor
弹跳因子
Particles can be accelerated or slowed down when they collide against other objects. This
factor is similar to the Particle Animator's Damping property.
当它们与其它物体碰撞时,这些粒子可以加速或放慢速度。这一因素与 Particle Animator's
Damping 属性相似
Collision Energy Amount of energy (in seconds) a particle should lose when colliding. If the energy goes below
Loss 0, the particle is killed.
,若能力低于0的粒子就被杀死
碰撞能量损失
当碰撞是,这些碰撞的粒子应失去能量(以秒计)Min Kill Velocity If a particle's Velocity drops below Min Kill Velocity because of a collision, it will be
最小杀死速度 eliminated.
若一个粒子的速度减低到最小杀死速度,因碰撞的原因,它将被淘汰
Collides with Which Layers the particle will collide against.
每个阶层的俩字会相互碰撞
Collision If enabled, every particle sends out a collision message that you can catch through scripting.
若启用,每个粒子向外发送一个碰撞消息,你可以通过脚本抓取
与碰撞
Send
Message
发送碰撞消息
Details 详细资料
To create a Particle System with Particle Collider:
建立一个粒子碰撞系统:
1. Create a Particle System using GameObject->Create Other->Particle System
建立一个粒子系统,使用菜单 游戏物体—>建立其它 —>粒子系统
2. Add the Particle Collider using Component->Particles->World Particle Collider
添加碰撞粒子,使用菜单 组件—>粒子 —>全局粒子碰撞
45
内部资料 注意保存
(1)Messaging 消息
If Send Collision Message is enabled, any particles that are in a collision will send the message
OnParticleCollision() to both the particle's GameObject and the GameObject the particle collided with.
若发送碰撞消息以启用,任何粒子碰撞都将发送消息,OnParticleCollision() 无论对于粒子的游戏物体还是游戏物体粒子碰撞。
(2)Hints 提示
Send Collision Message can be used to simulate bullets and apply damage on impact.
发送碰撞消息可以使用模拟子弹和应用损坏击打
Particle Collision Detection is slow when used with a lot of particles. Use Particle Collision Detection wisely.
当使用大量的粒子粒子碰撞检测变慢。使用单个粒子碰撞检测明智
Message sending introduces a large overhead and shouldn't be used for normal Particle Systems.
消息发送是一个大的开销,使用应不影响正常粒子系统
5) Particle Renderer 粒子渲染
The Particle Renderer renders the Particle System on screen.
粒子渲染渲染粒子系统屏幕显示
46
内部资料 注意保存
The Particle Renderer Inspector
粒子渲染检视面板
Properties 属性
Materials Reference to a list of Materials that will be displayed in the position of each individual
particle.
参考材料列表,每一个粒子的位置将显示
Camera Velocity The amount of stretching that is applied to the Particles based on Camera movement.
Scale 在摄像机移动基础上应用于粒子的伸展数量
材料
摄像机速度伸展
Stretch Particles Determines how the particles are rendered.
伸展粒子
Billboard
揭示栏
Stretched
确定如何渲染粒子
The particles are rendered as if facing the camera.
面对摄像机粒子渲染
The particles are facing the direction they are moving.
面对方向移动粒子渲染
伸展
排序揭示栏
Sorted Billboard The particles are sorted by depth. Use this when using a blending material.
粒子深度排序。当使用混合材料时使用它
47
内部资料 注意保存
Vertical
Billboard
All particles are aligned flat along the X/Z axes.
所有粒子以X/Z轴平面排列
垂直揭示栏
Horizontal
Billboard
All particles are aligned flat along the X/Y axes.
所有粒子以X/Y轴平面排列
垂直揭示栏
Length Scale If Stretch Particles is set to Stretched, this value determines how long the particles are in
their direction of motion.
若粒子拉伸设置为拉伸,则个值确定粒子在此方向上多长
Velocity Scale If Stretch Particles is set to Stretched, this value determines the rate at which particles will
be stretched, based on their movement speed.
若粒子拉伸设置为拉伸,该值确定在粒子拉伸速度,以它们移动速度为基础
UV Animation If either of these are set, the UV coordinates of the particles will be generated for use with a
tile animated texture. See the section on Animated Textures below.
如任一的或这些设置,紫外线与之相配的粒子将使用与动画材质一致并列产生。见下一结动画材质
X Tile
X 排列
Y Tile
Y 排列
Cycles
Number of frames located across the X axis.
通过X轴定位帧的数量
Number of frames located across the Y axis.
通过Y轴定位帧的数量
How many times to loop the animation sequence.
长度拉伸
速度拉伸
紫外线动画
多次循环动画序列
循环
Details 详细信息
Particle Renderers are required for any Particle Systems to be displayed on the screen.
粒子渲染所需要任何粒子系统将展现在屏幕上
48
内部资料 注意保存
A Particle Renderer makes the Gunship's engine exhaust appear on the screen
粒子渲染使得炮艇的发动机排气出现在屏幕上
(1)Choosing a Material 选择材料
When setting up a Particle Renderer it is very important to use an appropriate material and shader. Most of the
time you want to use a Material with one of the built-in Particle Shaders. There are some premade materials in
the Standard Assets->Particles->Sources folder.
当建立一个粒子渲染器非常重要的是使用适当的材料与着色。多数的时候,你想使用一个内置的材料对粒子着色。它们在Standard Assets->Particles->Sources文件夹中
Creating a new material is easy:
建立一个新的材料非常简单:
1.
2.
3.
Select Assets->Create Other->Material from the menu bar.
从菜单中选择 Assets->Create Other->Materia
The Material has a shader popup, choose one of the shaders in the Particles group. Eg.
Particles->Multiply.
4.
5.
材料着色弹出,在粒子群中选择一个着色,然后使用 Particles->Multiply.
Now assign a Texture. The different shaders use the alpha channel of the textures slightly differently,
but most of the time a value of black will make it invisible and white in the alpha channel will display it
on screen.
6. 现在分配一个纹理。同的着色器使用alpha通道的纹理略有不同,但大部分时间是将不可见的黑色和白色的alpha通道作将显示在屏幕上的值。
49
版权声明:本文标题:unity3d工程文档 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703341361h447627.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论