加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Unity中文基础教程

Unity中文基础教程.pdf

Unity中文基础教程

czpengsti
2013-09-24 0人阅读 举报 0 0 暂无简介

简介:本文档为《Unity中文基础教程pdf》,可适用于IT/计算机领域

•UnityBasics§LearningtheInterface§AssetWorkflow§CreatingScenes§PublishingBuilds§Tutorials•BuildingScenes§GameObjects§UsingComponents§Prefabs§Lights§Cameras§ParticleSystems§Terrains•WorkingwithAssets§ImportingAssets§Meshes§MaterialsandShaders§TextureD§MovieTexture§AudioFiles§UsingScripts§AssetServerGuide§BehindtheScenes•CreatingGameplay§InstantiatingPrefabsatruntime§Input§Transforms§Physics§Animation§CharacterAnimation§Sound§GameInterfaceElements§NetworkedMultiplayerUnityDUnityD是一个让你轻松创作的多平台的游戏开发工具是一个全面整合的专业游戏引擎。特色综合编辑通过Unity简单的游戏制作者界面你可以完成任何工作。这些为你节省了大量的时间。图形动力Unity对DirectX和OpenGL拥有高度优化的图形渲染管道。资源导入Unity支持所有主要文件格式并能和大部分相关应用程序协同工作。一键部署Unity可以让你的作品在多平台呈现。Wii的发布Unity让业界最流行的游戏平台软件更容易开发。iPhone发布Unity让革命性的游戏开发降临革命性的设备。着色器Unity的着色器系统整合了易用性、灵活性和高性能。地形低端硬件亦可流畅运行广阔茂盛的植被景观。联网从单人游戏到全实时多人游戏。物理特效Unity内置的NVIDIAregPhysXreg物理引擎带给你生活的互动。音频和视频实时三维图形混合音频流、视频流。脚本Unity支持种脚本语言:JavaScriptC#Boo。Unity资源服务器Unity资源服务器是一个附加的包括版本控制的产品。光影Unity提供了具有柔和阴影与烘焙lightmaps的高度完善的光影渲染系统。文档Unity为你提供逐步的指导、文档和实例方案。Unity代表了一个质的飞跃内置的光照贴图(lightmapping)、遮挡剔除(occlusionculling)和调试器。编辑器经过彻底革新让你可以获得卓越的性能体验。不可思议、无法阻挡的产品已经看到了曙光。Unity是一款跨平台的游戏开发工具从一开始就被设计成易于使用的产品。作为一个完全集成的专业级应用Unity还包含了价值数百万美元的功能强大的游戏引擎。Unity作为一个游戏开发工具它的设计主旨就是让你能够创建令人惊讶的游戏。如果你之前尝试过Unity请查看Unity都做了哪些更新。如果你是第一次尝试那就好好看看吧看Unity都能为你带来什么。Unity作为一种开发环境可让你脱离传统的游戏开发方式以一种更简单的方式专注于你的游戏开发。开发网络游戏、移动游戏、单机游戏Unity都能完全胜任。重大更新统一的编辑器随着Unity一个编辑器就可以支持所有平台多平台开发时代已经来临。你想开发iPhone、网络和Xbox游戏吗?没问题。你所要做的只是在编辑器中选择使用哪一个平台来预览你的游戏作品。延迟渲染在Unity中最突出的就是先进的延迟照明系统。现在只需要一点微不足道的性能损耗你就可以在你的场景中创建几百个点光源。由于延迟灯光使用了G缓冲器因此我们对它们进行了开放使得你可以重新利用它们来获取大量的其他高端图像效果而没有额外的性能损失。Beast光照贴图Unity带来了行业最顶级的光照贴图技术:Beast。Beast被使用在《镜之边缘》(Mirror'sEdge)和《杀戮地带》(Killzone)中通常每个Beast授权主题都会花费你万美元以上但集成到我们的Unity中却是完全免费的。使用Beast光照贴图可呈现物体的即时动态光影互动效果当物体接近时Unity会无缝的调整光线使你观察到阴影和凹凸细节。镜头特效我们提升了Unity在游戏中的后效表现。你可以在《杀戮地带》和其他游戏中大量看到Unity的专业后效表现。我们提供了光羽、高品质景深、内部镜头反射、轮廓线和深度感知颜色校正以及更多。音频魔术Unity带来了对音场区(ReverbZones)、过滤器和文件追踪的支持并且将许多其他好东西都收纳其中。我们还为所有的主要音频参数推出了可编辑衰减曲线因此你可以完全控制你的声音环境。资产管理当你在开发大型项目时你可以快速查找到你的资产。在Unity中我们添加了内容管理器可以以预览的方式显示所有内容包括标记和搜索因此当你需要查找自己的资源时你可以唾手而得。源代码级调试器程序员们大声欢呼吧!Unity通过使用MonoDevelop引入了脚本调试无论是Windows系统还是Mac系统。你可以中断游戏逐行单步执行设置断点和检查变量。执行后才能调试的时代已经一去不复返了。遮挡剔除对于移动设备而言性能是你的首要关注目标。即使是非常强大的硬件你也想要尽可能的提升性能。这就是我们为什么将遮挡剔除集成到Unity里面的原因。它可以同时在移动设备、网络和游戏机上运行。最重要的是:它包含在Unity中不需要额外的收费。使用Unity制作的作品欣赏:UnityBasicLearningtheInterface界面介绍主要编辑窗口由几个选项卡式窗口组成成为视图。在Unity中有几种类型的视图每种视图都有自己专用的用途。项目视图每一个Unity项目都包含一个Assets(素材、资产)文件夹。文件夹中的内容将显示在Project视图中。Project视图中存放着所有用于游戏的素材例如场景、脚本、D模型、贴图、声音文件和Prefabs(预制物体)。如果在Project视图中右键点击任何的素材选择RevealinFinder(RevealinExploreronWindow)命令可以在操作系统中查看原始的素材文件。重要注释:不能在操作系统里面移动项目里的素材这会破坏素材和原始文件之间的关联关系。应该始终在Project视图中组织和管理素材。要向Project视图中增加素材可以直接从操作系统中拖曳任何文件到Project视图或者使用Assets>ImportNewAsset命令。Scenes(场景)同样在Project视图中存放。可以把场景想象成独立的层级(Thinkoftheseasindividuallevels)。创建一个新的场景使用CommandN(ControlNonWindows)快捷键将当前场景保存到Project使用CommandS(ControlSonWindows)快捷键。有些游戏素材需要在Unity软件中进行创作使用Create命令或者右键单击后选择Create命令。利用菜单可以增加脚本、预制物体或者文件夹以便更好地进行管理。在苹果系统中你可以按回车键在Windows操作系统中你可以按F键去重命名任意的素材或文件夹或者双击素材的名称。按住ALT键展开或者收缩一个文件夹则所有的子文件夹都将展开或者收缩。Hierarchy(层次)包含当前场景中的所有GameObject。有些GameObject如D模型将直接表现为素材文件的实例其他的则表现为预制物体的实例customobjectsthatwillmakeupmuchofyourgame。在Hierarchy中可以选择和设置父级物体。当物体被添加到场景中或者从场景中删除也将影响其在Hierarchy中的显示与否。Parenting父级Unity使用了一个概念Parenting父级。要使任一游戏物体成为其他物体的子物体在Hierarchy中拖动想成为子级的物体到父级物体上。子物体将继承父物体的运动和旋转。在Hierarchy中可以展开和收缩父物体以查看其子物体而不会影响到游戏。Toolbar工具条含有五个基本控制每一个控制都关系到编辑器的不同部分。TransformTools-在Scene场景视图中使用。TransformGizmoToggles影响场景视图的显示PlayPauseStepButtions在Game视图中使用Layer–控制哪些物体显示在Scene视图中Layout控制所有视图的排列SceneViewSceneView(场景视图)是用于交互设计的沙盒游戏制作者在场景视图中可以选择和放置(围绕物)环境游戏角色摄像机敌人以及其他的所有游戏物体。在Unity的场景视图中移动和操纵物体是很常用的功能所以如何快速实现将很重要。快速实现:按住鼠标右键进入Flythrough模式使用鼠标和WASD键可以快速导航视图。选择任何游戏物体按F键被选择物体将在视图正中显示同时基准点处于选择物体上。按住ALT键单击并拖动将使摄像机围绕当前基准点如果使用的是键的鼠标也可以这样做:按住Alt和鼠标中键拖动场景视图中摄像机环绕按住Alt和鼠标右键拖动可以缩放场景视图如同滚动鼠标滚轮。如果使用个键的鼠标可能更多需要用到HandTool(快捷键Q)按住Alt键拖曳以环绕查看按住Command(Control)键拖曳以缩放查看。放置游戏物体在创建游戏时会在游戏世界中方式很多的物体。使用工具条中的TransformTool转换工具可以转换、旋转和缩放每一个游戏物体。在场景视图中被选择的游戏物体都会出现一个对应的线框(Gizmo)。游戏制作者可以使用鼠标操纵任一线框的轴以更改游戏物体上需要变换的部分也可以在Inspector中的TransformComponent中直接输入数值。l在拖动任一GizmoAxis(线框轴)时按住Command键(Control键)将按照SnapSettings设置的数值锁定增量。在Edit>SnapSettings菜单中改变锁定数值。l在线框的中心上点击并拖动将在所有轴向上同时调整。在拖曳中心时按住Command键(Control键)可以使物体锁定到任何冲突的相交点这可以非常快速的将物体放置在准确位置。l如果是三键鼠标单击中键即可再次调整最后调整的轴(轴将变为黄色)不用再次点击该轴。l注意:在使用缩放工具时不均匀的缩放可能导致子物体不正常的缩放。GizmoDisplayToggles被用于定义任意TransformGizmo转换标志的位置。标志显示开关lPosition:nCenter将把标志放置在物体渲染边界的中心位置。nPivot将把标志放置在网格的真实轴点上lRotation:Local将使标志的旋转相对于物体。Global将标志限制为世界坐标位置。SceneGizmo场景标志在场景视图的右上角是SceneGizmo场景标志。这个表示场景摄像机当前的方向并且可用于快速调整视图角度。游戏制作者可以点击标志上任一的分支以锁定场景摄像机指向该方向并切换成Isometricmode等距模式。在Isometricmode中游戏制作者按住右键拖动可以旋转按住ALT键拖动鼠标可以摇移。要退出这种模式单击场景标志的中心。任何时候游戏制作者都可以按住Shift键点击场景标志的中心以切换Isometricmode(物体不会因为距离变小)。SceneViewControlBar场景视图控制条最前面的下拉列表框用于选择DrawMode绘画模式。游戏制作者可选择以贴图、线框或者贴图上覆盖线框的形式查看整个场景这对于发布的游戏是没有影响的。第二个下拉列表框用于在四种方式选择一种RenderModes渲染模式这四种方式是RGB,Alpha,Overdraw和Mipmaps同样此处的设定不会影响发布的游戏。•RGBissimplyallthecolorsofyourgamerenderedasnormal•Alphawillrenderallalphavaluesforfinetuningtransparencyorfullscreeneffectsthatmakeuseofalphavalues•Overdrawwillindicatehowmuchofthescreenisconsumingoverdrawtime•Mipmapsshowsidealtexturesizesredmeanstheparticulartextureistoolarge,andbluemeansthetexturecouldbelargerOfcourseidealtexturesizesdependontheresolutionthegamewillrun后面还有两个按钮分别是:SceneLighting和GameOverlay。使用SceneLighting将覆盖默认的场景视图灯光不论放置的灯光是否是最终的灯光设置。GameOverlay可以使场景看起来像天空体或者图形界面元素。GameOverlaywillenableitemslikeSkyboxesandGUIElementsintheSceneViewGameView游戏视图游戏视图是由场景中的摄像机渲染而来它所表现的就是最终的可发布的游戏。游戏制作者需要使用一个或者多个摄像机去控制游戏以体验玩家在玩游戏时的真实感觉。PlayMode使用工具条中的按钮去控制编辑器的PlayMode播放模式同时可以查看将要发布的游戏是如何玩的。在Play模式中所做的任何修改都只是暂时的当退出Play模式时都将被重置。编辑器界面将变黑提醒游戏制作者注意。GameViewControlBar游戏视图控制条最开始的下拉列表框是AspectDropdown宽高设定可以强制游戏视图窗口为不同数值的宽高比率。这可以用来测试游戏在不同宽高比的显示器上运行的效果。MaximizeonPlay开关处于打开状态时当进入Play模式游戏视图将的最大化以全屏方式预览。Gizmos开关打开是所有出现在场景视图中的Gizmos线框也将绘制于游戏视图。这也包括任何Gizmos类创建的Gizmos。Stats按钮将用于显示RenderingStatistics渲染统计窗口对于优化图形指标非常有用。Inspector(属性修改器?)Unity中创建的游戏是有很多游戏物体构建的包含meshes(网格物体)、脚本、声音或者其他图形元素比如灯光。在Inspector中显示的是当前选中物体的详细信息包括所有附属Components(成份)和它们的属性游戏制作者在此修改场景中游戏物体的参数项。在Inspector中显示的任何属性都可以直接修改甚至在不修改脚本的情况下更改脚本变量。在运行的时候也可以通过Inspector去修改变量以测试游戏并发现游戏神秘玩法秘籍在脚本中如果游戏制作者给某个物体类型(如游戏物体或者变换)定义了一个公共变量可以拖动游戏物体或者Prefab(预制物体)进入Inspector以给其赋值。在Inspector中单击任何Component名称后面的问题标志可以打开该ComponentReference页面(参考页面)该页面将提供完整且详细的参数说明。从Component菜单添加Component游戏制作者可以单击微小的齿轮图标(或者右键单击Component名称将调出一个关联菜单)Inspector也将显示所选择的asset(素材)文件的任何重要设置。使用Layer下拉列表框分配一个渲染层给游戏物体。使用Tag下拉列表给游戏物体附上一个标签。Prefabs预制物体如果选择的是预制物体在Inspector中一些附加按钮将可用。AnimationView动画视图Unity具有全新的AnimationView是一个功能强大的动画编辑工具。StatusBar状态条在编辑器下面的状态条可以提供多种用途它将显示任何编译错误或者Debug信息。如果游戏有问题通过状态条查看是最佳的方式。游戏制作者可以在状态条上双击以调出Console(控制台)窗口将显示所有的脚本或者运行错误。Console控制台在状态条上双击或者选择Window>Console将调出控制台。在Console中显示游戏的信息、警告、错误或者跟踪运行的输出游戏制作者可以设置信息被传送到控制台是使用DebugLog()还是DebugError()。双击信息可以查看导致该信息的脚本。在控制台工具条中同样提供了一系列选项。工具条中很多选项是不需要说明的但是有一点需要明确当ErrorPause处于可用DebugError()将导致游戏暂停Debuglog()不会暂停游戏。自定义工作区域游戏制作者可以自定义工作区域点击并拖动任何试图的标签即可将试图放置到不同的位置上。拖动标签到已存在的窗口的TabArea标签区域将在已存在的标签后面添加该标签。另外拖动标签到任何的DockZone停泊处都将在新窗口中添加此试图。标签也可以从主编辑器窗口中剥离在浮动编辑器窗口中进行排列。浮动窗口能够包含多个视图的排列如同主编辑窗口。用SaveLayout存储工作区域然后从Layout下拉列表中选择即可再利用。任何时候在视图的标签上右击都可以看到增设的选项比如最大化或者在同一个窗口增加一个新标签。AssetWorkflow素材工作流程本节讲述在Unity中使用单一素材的工作流程。这个工作流程是一般性的只是用来说明一个基本的操作过程。CreateRoughAsset创建原始素材使用任何被支持的D模型去创建最初版本的素材。本例使用的是MAYA。Import引入当保存最初的素材时一般是将素材保存到Project项目文件夹中的Assets素材文件夹中。当打开该Unity项目时素材将被检查并引入到项目中。当在ProjectView项目视图中观察时将看到素材存在于保存的位置。ImportSettings引入设置如果选择ProjectView中的素材则此素材的引入设置将显示在Inspector中。根据选择素材的不同将显示不同的选项。AddingAssettotheScene添加素材到场景从ProjectView中单击并拖动网格物体(素材)到Hierarchy或SceneView中即可将素材添加到场景中。当拖动网格物体(素材)到场景时将创建一个GameObject游戏物体其具有MeshRendererComponent网格渲染成份。如果是一个贴图文件或者声音文件则必须将它添加到场景或项目中已存在的游戏物体上。PuttingDifferentAssetsTogether将不同素材放置在一起此处是关于常用素材使用关系的简要说明贴图文件被用于Material材质材质则被用于游戏物体(具有网格渲染成份MeshRendererComponent)Animation被用于游戏物体(具有动画成为AnimationComponent)声音文件被用于游戏物体(具有声音源成份AudioSourceComponent)CreatingaPrefab创建预制物体Profabs(预制物体)是游戏物体和成份的集合体是可以在场景中重复使用的。数个相同的物体可以使用一个单独的预制物体创建称为instancing实例比如树林。创建一棵树的预制物体然后实例化的创建多棵相同的树放在场景中。因为所有的这些树链接到预制物体因此任何针对预制物体的修改都将自动应用于这些实例树上。也就是说如果需要修改网格物体、材质或者其他任何东西只要在预制物体上进行即可所有链接的实例树自动更改。游戏制作者也可以在实例上进行修改选择GameObject>ApplyChangestoPrefab菜单命令将修改应用到预制物体上。利用预制物体在设置和更改素材是可以节省大量时间。当游戏物体包含多种成份和子物体分支时可以把顶层(根)制作成预制物体重复使用游戏物体的全部内容。可以将预制物体设想成游戏物体的结构蓝图。所有预制物体的克隆品都跟蓝图是一样的因此如果蓝图被更新所有的克隆品都会更新。有很多方式可以更新预制物体可以通过更改某一个克隆品然后将更改应用到蓝图。要利用场景中的物体创建预制物体首先在ProjectView中创建一个新的Prefab对此Prefab进行命名单击场景中要制作Prefab的游戏物体拖动它到新创建的Prefab将看到游戏物体的名称变为蓝色即表示创建了一个可重复利用的预制物体。UpdatingAssets更新素材在引入、实例和创建预制物体后如果想着修改原始的素材则在ProjectView项目视图中直接双击素材相关联的程序将被调用然后可以进行修改。在修改完成后需要保存修改的内容。这样在返回Unity软件时所做的修改将被检测到素材将被重新引入。该素材创建的预制物体也将被更新。因此修改素材所要做的仅仅就是打开它修改并保存。CreatingScenes创建场景Scenes场景包含着游戏中用到的物体可以被用于创建主菜单独立的关卡和其他的一些东西。可以把每个单独的场景文件想象成单独的关卡。在每一个场景都要放置环境、障碍物和装饰物就如同设计和创建游戏一样。InstancingPrefabs实例预制物体使用上一节介绍的方法创建Prefab一旦创建了预制物体可以快速便捷的制作它的复制品称为实例。要创建任何预制物体的实例从ProjectView拖动预制物体到Hierarchy或者SceneView中这样就具备了一个实例可以按照需要放置和改变它。AddingComponentScripts增加成份和脚本在选择了预制物体或者任何游戏物体后将呈现高亮状态可以使用Components为其添加功能。Scripts是一种成份类型。要增加一种成份只需将游戏物体高亮然后在Component菜单中选择一种成份即可。游戏制作者将在该游戏物体的Inspector中看到此成份。默认的脚本也包含在Component菜单中。如果因为添加成份导致游戏物体与预制物体失去关联可以使用GameObject>ApplyChangestoPrefab重建关联。PlacingGameObjects放置游戏物体一旦游戏物体被拖入场景就可以使用TransformTools转换工具将其放置到希望位置。另外可以使用Inspector中的Transform数值去微调位置和旋转。WorkingwithCameras使用摄像机Cameras是游戏中的眼睛。在玩游戏时游戏者看到所有内容都是通过一个或多个摄像机。游戏制作者可以放置、旋转和使其成为父物体就像操作其他游戏物体一样。摄像机其实就是一个游戏物体只是有CameraComponent关联到上面。因此一般物体能做的摄像机都能做另外具有一些摄像机特有的功能。在创建新项目是一些有用的Camera脚本将随标准素材包一起被安装可以在Components>CameraControl找到这些脚本。摄像机还有一些附加的特性这些特性最好能掌握。Lights灯光除了极少数情况游戏制作者总要向场景中添加Lights灯光。UnityD具有三种不同类型的灯光它们之间有一定的不同。这三种灯光主要用于给游戏增加气氛和氛围。不同类型的灯光可以完全改变游戏的气氛有效地利用灯光将是要学习的重要课题。PublishingBuilds发布在创建游戏的任何时候游戏制作者可能都想脱离编辑环境以独立运行或者页面运行的方式看一下游戏的效果。本节将介绍如何进入BuildSettings如何创建游戏的不同平台的运行版本。选择File>BuildSettings进入BuildSettings窗口将弹出一个可编辑的场景列表在发布游戏时将包含这些场景。BuildSettingwindow在项目中第一次浏览此窗口将显示为空白。当列表框是空白时如果发布游戏则只有当前打开的场景被发布。如果只想快速发布一个测试游戏且只含有一个场景文件则可以在场景列表空白的情况下直接发布。游戏制作者可以很容易的将场景添加到列表中以进行多场景游戏的发布。有两种方法:第一是点击“AddCurrent”按钮将看到当前打开的场景出现在列表中。第二是从ProjectView中奖场景文件拖曳到列表中。注意:每一个场景都应该具备不同的索引数值。Scene是在发布电影时将被调入的第一个场景。当游戏制作者想调入新场景则在脚本中使用ApplicationLoadLevel()。如果在列表中添加了多个场景需要重新调整它们的顺序只要点击并拖动相关场景向上或者向下移动即可直到形成正确的顺序。如果需要从列表中移走场景点击选中该场景使其高亮显示按CommandDelete键。则该场景将从列表中消失不再包含在发布的电影中。在准备好发布游戏后选择一个Plattorm平台并确认Unity标志在平台的旁边如果标志不在旁边则点击SwitchPlatform按钮切换发布平台让Unity明白需要针对哪个平台进行发布。一切设定完成后点击Build按钮在调出的标准Save对话框中设定游戏的名称和存放地址。在点击Save按钮后Unity马上开始发布游戏。如果不能确定发布存放的地址则可以发布到项目的根目录下。记住不能将发布文件存放到Assets文件夹中。在任何独立发布中选中Debugbuild复选框都将开启Profiler(跟踪器探查器)功能。另外游戏发布的同时将提供调试信息游戏制作者可以使用第三方跟踪和调试工具。Desktop桌面WebPlayerStreaming页面播放器流媒体StreamingWebPlayer流媒体页面播放器可以在Scene完全下载的情况下就开始页面游戏。如果游戏具有关在开始玩第关时不用等待关所有的素材被下载。在发布一个流媒体页面游戏时素材被下载的顺序是和Scene场景文件被调入的顺序相一致的。一旦Scene的素材被下载完页面播放器就将开始运行。简单地说流媒体页面播放器将比以前更流畅运行游戏。Putsimply,StreamingWebPlayerswillgetplayersplayingyourgamefasterthanever游戏制作者唯一需要担心的就是要检查以核实下一关在调入之前所有的素材已经下载完。一般对于非流媒体的运行使用下面的语句去调入一关:ApplicationLoadLevel("levelName")在流媒体播放器中首先必须检查游戏已经完全下载完这个通过CanStreamedLevelBeLoaded()函数进行检查。下面是例程:varlevelToLoad=functionLoadNewLevel(){if(ApplicationCanStreamedLevelBeLoaded(levelToLoad)){ApplicationLoadLevel(levelToLoad)}}如果想让游戏者清楚游戏调入的进度可以提供一个进度条或者其他的标识可以通过GetStreamProgressForLevel()读取进度。Buildingstandaloneplayers发布单机版游戏使用Unity可以创建Windows和Mac(Intel、PowerPC或者Universal两种架构)平台上的单机游戏只要在发布设置窗口中设置发布所针对的平台即可。在发布单击版时最终获得的文件与所选择的目标平台有直接关系。针对Windows平台将生成一个可执行文件同时还会有一个文件夹里面包含该程序所需要的所有素材。针对MAC平台将生成一个appbundle程序包包含程序所需要的文件也就是素材。在Mac平台上分布程序只需提供生成的程序包即可所有的都打包在其中。在Windows平台上分布程序则要提供可执行文件和数据文件夹。如此想象一下:为了运行游戏Unity发布程序给你同样其他游戏者必须在他们的计算机上具有一样的文件。Insidethebuildprocess发布过程将放置一个发布游戏程序的空白拷贝不论游戏制作者是否设定。这个空白的游戏拷贝将执行发布设置中的场景列表每次一个的在编辑器中打开场景优化它们并将它们集成到程序包中。同时还将计算收录场景所需要的全部素材并在程序包的单独文件中储存这些素材。l场景中的任何GameObject游戏物体如果被“EditorOnly”所标记则在发布时将不会包含在游戏中。这对于跟踪脚本是非常有帮助的而且不需要在最终游戏中包含。l当新的关卡调入时上一关的所有物体将被释放销毁。要制止这样做在任何不想销毁的物体上使用DontDestroyOnLoad()。一般这样的手法经常用在调入关卡时保持音乐的播放或者用在游戏控制脚本上以保持游戏的状态和进度。l在新关卡调入完成后消息OnLevelWasLoaded()将被发出到所有处于激活状态的游戏物体。l关于如何最佳的创建多场景游戏的更多信息比如主菜单、最高纪录和实际的关卡查看ScriptingTutorialpdfAndroid安卓版本Unity的UnityAndroid在当前处于预览状态。UnityAndroid手册会添加到此处以便查看。Preloading预先调入当场景调入时发布过程会自动预先调入该场景的所有素材不过场景是例外的因为第个场景往往是启动画面需要尽可能的快的调入。要确保所有内容被预先调入可以创建一个空白场景调用ApplicationLoadLevel()。在发布设置中确定空白场景的索引是。所有后面的关卡将被预先调入。You’rereadytobuildgames准备好发布游戏现在已经介绍了如何使用Unity界面如何使用素材创建场景发布游戏。已经没有任何可以阻止你创建梦想的游戏。你可以继续沿着这条路走下去我们将给你提供帮助。Tutorials教程介绍Unity界面教程目标如果你是Unity的新游戏制作者本教程最好是你阅读的第一个教程。它将介绍界面的关键部分并介绍如何创建基本游戏物体以及放置他们到D空间。要全面熟悉Unity界面我们将创建一个简单场景它将控制一个角色在表面行走。注意:任何文本前面如果有“”则表示游戏制作者需要进行操作。屏幕布局()SceneView用于放置游戏物体()GameView演示在运行时游戏的效果()HierarchyView当前场景中游戏物体的列表()ProjectView该视图显示所有的可以被使用的素材(类似一个面板)()InspectorView显示当前选中游戏物体的属性、在D场景中查找游戏物体启动Unity创建一个新的项目。选择File>NewProject,给新的项目命名例如“GUITutorial”点击CreateProject。Unity现在可以引入素材例如声音文件纹理D模型这些都可以被使用。一旦引入完成就可以准备自己的游戏了。目前游戏只包含一个MainCamera(默认的)。在Hierarchy视图中目前只能看到这一项。如果没有在场景中看到摄像机则在HierarchyView中单击MainCamera然后移动光标进入SceneView按键盘上的F(frameselect)键。主摄像机现在显示在SceneView中间。此技术可以用于查找任何游戏物体。任何游戏物体都可以通过在SceneView中点击选择或者在HierarchyView中点选。如果是在SceneView中点击某个物体它将在HierarchyView中高亮显示从而确认选择的物体是否正确。、创建游戏物体现在向场景中添加一些游戏物体选择GameObject>CreateOther>Plane将创建一个平面(D表面)这样角色将在上面行走。选择GameObject>CreateOther>Cube添加一个立方体到游戏世界中。选择GameObject>CreateOther>PointLight添加一个点光源。、浏览场景使用下列操作可以从任何角度查看D物体:()旋转(Option鼠标左键)()摇移(Option鼠标中键)()缩放(Option鼠标右键)如果是一个键的鼠标或者使用笔记本仍然可以轻松操作。首先在UnityGUI的左上角点击handshaped工具然后使用下面的操作:()旋转(Option鼠标左键)()摇移(鼠标左键)()缩放(Command鼠标左键)尝试以上操作。、移动游戏物体使用下面的操作可以放置任何游戏物体到D空间中。()Move工具(W键)选择任何游戏物体然后按W键在物体上将显示三个箭头每个箭头代表D空间的一个轴向。红色为X轴绿色为Y轴蓝色为Z轴。即RGB对应XYZ。要移动一个物体在想要移动的轴向上使用鼠标左键单击并拖动对应的箭头到合适位置。在拖动的时候注意InspectorPanel中物体的位置数据将改变。当然也可以直接在此处输入数值。游戏制作者也可以重新放置游戏物体。首先选择它然后移动摄像机指向大概的方向即想让物体移动的方向。然后选择GameObject>AlignwithView则选择的游戏物体将移动到摄像机的现在的点。(没明白)()Rotate工具(E键)。选择任何游戏物体按E键将显示旋转工具。要沿着某个轴向旋转则在轴上单击鼠标左键并拖动以旋转物体。在旋转的同时可以注意InspectorPanel中数值的改变。也可以直接输入数值。、游戏视图GameView游戏视图显示在运行时游戏的效果(具备完整的贴图灯光)。如果在游戏视图中不能看到游戏世界则摄像机没有朝向正确的方向。单击主摄像机将发现从摄像机处出现一个倒置的黄色梯形线框。这就是摄像机的视区(即能看到什么)。如果视区没有朝向游戏物体的方向调整场景视图到能够看到游戏物体然后选择MainCamera再选择GameObject>AlignWithView。现在游戏视图将匹配场景视图。游戏制作者可以使用移动和旋转工具供东调整摄像机的设置也可以在InspectorView修改它的变化数值。、重新设定游戏物体大小要重新设定物体的大小首先选择它然后按R键(重设或缩放工具)。游戏制作者通过拖动轴端的方块可视化的缩放物体或者在InspectorView中直接输入数值。下面就开始练习一下。选择plane在InspectorView中设置X轴和Z轴的值为。(改动第个和第个值第个值代表的是Y轴数值)。选择cube沿着Y轴可视化的进行调整(按R键向上拖动绿色的方块)。现在cube看起来像柱子了。Rename重命名cube为Pillar。在HierarchyView中选择他按回车键后输入新的名称。记住一开始最好为物体命名一个见名知意的名称。、使用素材计算机游戏是由D模型纹理声音文件游戏代码构成的这些统称为游戏的素材。Unity本身带有很多素材作为标准素材(甚至在Pro版本里)。现在我们从内置的素材中添加一个角色到游戏中。在ProjectView中展开StandardAssets文件夹再展开Prefabs。将看到FirstPersonController(FPSController)在Prefabs文件夹中。拖动FPSControllerprefab到场景视图中。注意游戏视图的变化。这是因为FPSControllerprefab具有它自己的摄像机覆盖掉了已存在主摄像机。确认FPSController没有触及平台处于平台的上面。删除主摄像机不再需要它。游戏视图中展示的就是游戏的真实效果。单击Play按钮开始运行游戏。注意因为屏幕是一致的所以可以在SceneView和GameView中观看游戏。使用光标键(或者WSAD)移动角色使用鼠标观察四周使用空格控制跳跃。再次单击Play按钮即可停止运行。注意:当鼠标在任何视图时(GameViewSceneView等)按“空格键”将使特定视图扩展到整个屏幕。这在场景视图或者运行游戏时有利于进行调整。再次按下“空格键”将使全屏幕的视图恢复到之前的模式。注意如果游戏当前正在运行则此功能将无法实现必须先停止或者暂停游戏。、添加成份游戏物体可以具有多个成份(或者行为)。单击任何游戏物体可以在InspectorView中看到附着的成份比如变换、BoxCollider。单击游戏物体在InspectorView中查看它的成份。继续添加另外的立方体并为之增加成份。向场景中添加另外一个立方体在HierarchyView中将其命名为PhysicsCube。现在给这个立方体增加Rigidbody(刚体)成份。Rigidbody(刚体)成份可以使游戏物体如同在真实的世界中具有重力。该物体将一直下落直到碰到一个具有Collider(碰撞)成份的表面。确认PhysicsCube处于选择状态选择Component>Physics>Rigidbody。这将Rigidbody成份附着给当前选择的物体。注意:在InspectorView中Rigidbody成份被添加。移动PhysicsCube到Pillar上面稍微有点错开。当开始运行是Physicscube将碰撞Pillar然后掉到地上。运行。、复制复制游戏物体是Unity强大功能之一。当复制某个物体时该物体所具备的功能和行为也都将被复制。这可以快速的创建复杂的场景。下面将添加更多的PhysicsCube到场景中。单击Physicscube然后按CommandD键(或者选择Edit菜单)。在Hierarchy中可以看到增加的PhysicsCube但是在场景中看不到因为它与源的位置相同。使用移动工具向上(沿Y轴)移动PhysicsCube。重复上面的操作。现在具有个PhysicsCube游戏物体。运行游戏。个PhysicsCube游戏物体将自然的交互和发生行为。Script教程命名规范变量以小写字母开头。变量用于存贮游戏的信息等。函数以大写字母开头函数是语句组成的程序块可以在需要的时候重复调用。类以大写字母开头。类可以被认为是函数的集合体。注意:在阅读代码实例或者UnityAPI时密切关注单词的首字母这将有助于了解物体之间的关系。脚本教程场景浏览和克隆物体、设置场景启动Unity。创建一个立方体缩放Xyz轴到在Hierarchy视图中将其命名为“Plane”作为一个大的平台用。创建第个立方体放置在平台的中央位置。如果在GameView中看不到物体则调整主摄像机使其可见。重命名此物体为Cube还可以再创建一个点光源将其放置在立方体的上面这样可以更容易看到。选择File>SaveAs命令保存当前的场景并命名该场景。、第一个脚本现在开始编写游戏程序检测键盘的输入控制主摄像机的位置。将编写一个脚本并将它关联到主摄像机上。创建一个空脚本选择Assets>Create>Javascript命令在Project面板中重命名脚本为Move。在Move脚本上双击打开脚本的同时Update()函数就已经被写入(这是默认的行为)将在该函数中插入语句。任何插入到Update()函数中的语句在每一帧中都将被执行。在Unity中要移动游戏物体需要修改游戏物体transform(转换)中的位置属性Translate函数属于transform可以用于修改位置参数。Translate函数需要个参数x、y和z数值。因为要使用光标键控制主摄像机因此要添加语句监控光标键是否按下然后为各个参数赋值。functionUpdate(){transformTranslate(InputGetAxis("Horizontal"),,InputGetAxis("Vertical"))}InputGetAxis()函数将在和之中返回一个数值。在水平轴向上向左的光标键返回向右的光标键返回注意:将Y轴设为是因为不需要控制摄像机上下移动。Horizontal(水平)和Vertical(垂直)轴是在InputSettings中预先设置的名称和键的对应关系可以很容易的修改执行Edit>ProjectSettings>Input命令即可。打开Move脚本输入以上语句。注意首字母的大小写。、附上脚本将脚本附在要执行此行为的游戏物体上。要给物体附上脚本点击要附脚本的游戏物体。本例为主摄像机可以在HierarchyView或者SceneView中选择它。在主菜单中选择Components>Scripts>Move命令将把脚本附在摄像机上。注意在主摄像机的InspectorView中Move成份将显示出来。注意:在ProjectView中拖动脚本到SceneView中的物体上也可以将脚本附在物体上。运行游戏(点击左边的播放图标)可以使用光标键或者WSAD键控制主摄像机的移动。有可能已经注意到摄像机移动的过快了下面看看如何有效的控制摄像机移动速度。、时间增量上文中在Update()函数中的语句将导致摄像机在每帧中移动非常的快。在游戏中最好使物体的每秒钟的移动在预期范围之内。要达到这样的目的将通过TimedeltaTime和每秒中移动的速度使InputGetAxis()返回的值增大。varspeed=functionUpdate(){varx=InputGetAxis("Horizontal")*TimedeltaTime*speedvarz=InputGetAxis("Vertical")*TimedeltaTime*speedtransformTranslate(x,,z)}用上面的代码更新Move脚本。注意:变量speed在Update()函数之外被声明这个被称为公开变量(exposedvariable)不论是什么游戏物体只要关联了此脚本该变量就会显示在InspectorView中(对于UnityGUI变量也是公开的)。当数值需要调整以得到希望的效果时公开变量是非常有用更改公开变量比更改语句更容易啊。、链接变量通过GUI链接变量是Unity提供的强大功能。它允许变量正常情况下在语句中被赋值又可以通过在UnityGUI中拖动改变数值。这样可以确保快速且容易的对想法进行试验。当通过UnityGUI与变量建立联系我们知道还应该在创建的脚本中定义公开的变量这样我们可以通过InspectorView为参数赋值。下面将创建一个射灯它将跟随主摄像机的移动从而展示链接变量的作用。在SceneView中添加一个spotlight将它移动到游戏物体的附近。创建一个新的脚本命名为Follow。我们需要新的射灯始终照向主摄像机拍摄的方向这就需要使用Unity内置的函数transformLookAt()。在你开始想象如何去做并为之设想了很多代码之前最好去看看Unity的API因为可能已经有合适的函数存在。当我们需要更改游戏物体的位置和旋转的时候最好在API的“transform”章节查找合适的函数。现在我们进入链接变量阶段即拿什么作为LookAt()的参数?我们可以使用硬编码提供一个游戏物体然而更好的办法是通过GUI给变量赋值因此我们需要创建一个类型为Transform的公开变量。Followjs脚本如下:vartarget:TransformfunctionUpdate(){transformLookAt(target)}将脚本赋给射灯注意当添加成份后变量“target”被显露出来。保持射灯被选择在HierarchyView中拖动MainCamera到InspectorView中的“target”变量上。这将赋值给target变量即射灯将跟随MainCamera。如果想让射灯跟随其他的游戏物体拖动其他物体到target变量上(该物体必须具有transform信息)。运行游戏

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/37

Unity中文基础教程

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利