Unity 3D游戏开发从入门到精通 [平装] 9787113170219

配送至
$ $ USD

《Unity 3D游戏开发从入门到精通》以实例讲解形式为主,循序渐进地介绍了Unity3D游戏开发的流程、方法和技巧。具体内容包括:Unity3D基础知识,Unity脚本和游戏创建,开启你的第一个项目,深入探究Unity,湖边小屋项目的具体制作过程,Unity碰撞检测,创建一个采蘑菇游戏,Unity角色动画,umty:3D第三人称射击游戏。
编辑推荐
《Unity 3D游戏开发从入门到精通》适合Unity游戏开发的初、中级读者阅读,也可作为大中专院校和培训机构相关专业的教材。
目录
Chapter01Unity基础 1.1Unity界面 1.1.1ProiectView(项目面板) 1.1.2Hierarchy(层次面板) 1.1.3Toolbar(工具栏) 1.1.4SceneViewr(场景视图) 1.1.5GameViewr(游戏视图) 1.1.6Inspector(属性编辑器面板) 1.1.7工作空间定制 1.2Unity3D工作流程 1.2.1游戏资源管理 1.2.2场景构建 1.2.3游戏发布 Chapter02Unity脚本和游戏创建 2.1JavaScript语言在Unity中的应用 2.1.1脚本概念 2.1.2脚本实例 2.2输入控制 2.2.1桌面输入 2.2.2移动设备输入 2.3运行时实例化 Chapter03开启你的第一个项目 3.1如何创建一个新的项目 3.1.1创建一个新的项目 3.1.2项目结构 3.2使用UnityTerrain(地形)系统 3.2.1熟悉地形系统 3.2.2创建游戏地形 3.2.3场景漫游 Chapter04深入探究Unity 4.1属性编辑器操作 4.1.1使用标签及分层操作 4.1.2预设操作 4.2第一人称角色控制器 4.2.1第一人称角色控制器物体结构 4.2.2第一人称角色控制器工作原理 4.23第一人称角色控制器脚本实现 Chapter05项目实例——湖边小屋 5.1添加小屋模型 5.1.1定位小屋 5.1.2Couiders(碰撞器) 5.2粒子效果 5.2.1Unity钾粒子系统 5.2.2为小屋添加炊烟效果 5.3声音效果 Chapter06Unity碰撞检测 6.1碰撞检测探究 6.1.1碰撞器碰撞检测 6.1.2射线碰撞检测 6.2碰撞检测实例 6.2.1门的碰撞检测——碰撞器检测方式 6.2.2门的碰撞检测——射线碰撞检测方式 Chapter07创建一个采蘑菇游戏 7.1创建蘑菇预设 7.1.1输入蘑菇模型 7.1.2“加工”蘑菇资源 7.2GUI纹理和文本 7.2.1GUI纹理 7.2.2GUI文本 Chapter08Unity角色动画 8.1Maya角色建模 8.1.1头部建模 8.1.2角色躯干建模 8.2Maya角色贴图和纹理 8.2.1UV贴图设置 8.2.2纹理绘制 8.3Maya角色骨骼蒙皮动画 8.3.1角色骨骼设置 8.3.2角色蒙皮 8.3.3角色动画及导出 Chapter09Unity3D第三人称射击游戏 9.1项目前期设置 9.1.1Unity3D角色素材导入方法 9.1.2Unity3D角色动画原理 9.2高级动画系统——Locomotion System(地形自适应系统) 9.2.1LocomotionSystem的使用 9.2.2LocomotionSystem的附加特性 9.2.3LegAnimator脚本组件参数 9.3第三人称摄像机 9.3.1初始的第三人称摄像机 9.3.2JavaScriptClass(类)和Unity Java Script Class(类) 9.3.3项目第三人称摄像机 9.3.4创建士兵角色控制脚本Soldier Controller 9.3.5Unity角色动画系统——组件介绍 9.3.6角色动画脚本——Soldier Animations脚本 9.3.7Gun枪支脚本
文摘
版权页: 插图: 6.Animation Playback and Sampling(动画播放和取样原理) 要创建好的角色动画游戏,理解Unity中动画的播放和取样原理是非常重要的。这包括在第三方建模或动画软件中制作动画到导入到Unity中进行播放整个过程。 动画片段在制作时总是有一个特定的速率,例如,用户可以在3ds Max或Maya中以60帧/秒(fps)的速率创建了一个动画片段。在使用输入器导入到Unity中时,输入器将读取此帧速率,因此导入的动画帧速率还是60fps。然而,游戏在运行时的速率是不断变化的,有的电脑帧速率快有的电脑帧速率慢,即使是同一台电脑前一秒和后一秒因为视角的不同帧速率也会不一样,这意味着在游戏运行时我们无法确定一个精确的帧速率,因此即使我们的动画片段制作时的帧速率是60 fps,在它重放时用的也许就是另外一个速率,例如,56.72 fps或83.14 fps或其他任意的速率。 作为一个结果,Unity就会对一个动画以变化的帧速率进行取样,并且不能保证就是动画原始的帧速率。幸运的是,3D计算机图形动画不是由不连续的动画帧构成,而是由连续的曲线构成。这些曲线可以让我们在动画的任意时问点进行取样,而不仅仅是那些关键帧对应的时间点。这也意味着,如果游戏的运行速率高于动画片段的原始制作速率,则动画片段在播放时,在游戏中要比在原来的动画软件中更加的平滑及流畅。 在大多数情况下,用户可以忽略Unity以变化的帧速率对动画进行取样这一事实,然而在某些情况下,如果你的游戏逻辑依赖于动画中的位胃,旋转或缩放等类似的属性,则此时就不能忽略Unity以变化的帧速率对动画进行取样这一事实了。例如,当前有一个动画是把一个物体在30帧的时间内从0。旋转到l80。,用户需要从代码中得知什么时候动画完成一半,此时则不能使用一个条件语句来检查球体当前的旋转值是不是90。,因为Unity使用游戏的变化的帧速率来对动画取样,在某次取样时,它可能在旋转快到90。时进行采样,而下一次时,又可能恰好在90。时进行采样。如果需要在动画中的某一个指定点到达时获得通知,则可以使用Unity的AnimationEvent来替代。 同样需要注意的是使用WrapMode.Once模式进行播放的动画片段,由于Unity以变化的帧速率对动画进行取样这一事实,其对动画片段最后一帧播放完成的时问也是不确定的。在游戏的某帧可能在动画片段结束前进行采样,而在下一帧时问则可能超过动画的长度进行采样。如果用户需要对动画的最后一帧进行精确采样,则可以使用WrapMode.ClampForever循环模式,此时Unity会持续不断地对动画最后一帧进行采样,直到用户自己停止动画的播放。
ISBN
出版社中国铁道出版社
作者路朝龙
尺寸16