Unity3D游戏开发PPT完整全套教学课件_第1页
Unity3D游戏开发PPT完整全套教学课件_第2页
Unity3D游戏开发PPT完整全套教学课件_第3页
Unity3D游戏开发PPT完整全套教学课件_第4页
Unity3D游戏开发PPT完整全套教学课件_第5页
已阅读5页,还剩345页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章初识Unity游戏引擎01第1章初识Unity引擎.pptx02第2章核心原理学习.pptx03第3章界面交互设计.pptx04第4章物理引擎玩法.pptx05第5章灯光材质地形.pptx06第6章模型动画特效.pptx07第7章寻路数据库网络.pptx08第8章虚拟现实打包发布.pptx全套PPT课件CONTENTS2.Unity注册安装3.Unity网页介绍4.Unity学习资源5.UnityHub了解6.Unity案例制作1.Unity游戏引擎第一节Unity游戏引擎1.什么是游戏引擎?2.有哪些游戏引擎以及应用?3.详细了解Unity游戏引擎!4.畅想设计一款游戏以及开发引擎!1.1.1游戏引擎介绍虚幻引擎起源引擎寒霜引擎《彩虹六号:维加斯》《战争机器》《虚幻竞技场3》《质量效应》《流星蝴蝶剑OL》《绝地求生》《堡垒之夜》《半条命2》系列《反恐精英》系列《军团要塞》系列《求生之路》系列《DOTA2》《战地》系列《极品飞车》系列《植物大战僵尸》LayaBox《无尽骑士3D》《QQ花藤》《QQ农场》《胡莱三国》《大天使之剑H5》GameMakerUndertaleRiskofRainHyperLightDrifterVA-11Hall-ACrushlandsCocoscreator梦幻西游手游版刀塔传奇我叫MT捕鱼达人欢乐斗地主秦时明月保卫萝卜

游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如Linux、MacOSX、微软Windows。渲染系统(即“渲染器”,含二维图像系统和三维图像系统)、物理系统、碰撞检测系统、音效、1.百度百科:游戏引擎游戏引擎定义游戏引擎系统脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。国内游戏引擎开发“”

1.1.2Unity引擎介绍1.适合开发初学者,操作便捷,容易上手。2.智能界面设计,可视化编程界面完成各种开发工作,高效脚本编辑,实现高效率开发。3.面向组件开发,不同的游戏项目,整个逻辑需要用C#重新写,但是资都是可以沿用原项目的。4.跨平台性,只需一键即可完成作品的多平台开发和部署,支持PC、移动、主机三大不同的平台5.入门简单,开发语言C#相对于C/C++更简单,而且unity的使用已相对成熟,学习视频较多1.1.3Unity诞生与发展已经拥有了整合的编辑器、图形引擎、跨平台发布、地形编辑、着色器、脚本、网络、物理、特效、音频和视频、集成2D游戏开发工具版本控制等强大特性功能,可以实现轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容Unity3D创始团队于2004年创立了一家游戏公司,在Mac平台开发了一款GooBall的游戏后开始转向游戏引擎制作,即让游戏创作者能够更加轻松并专注于游戏创作本身。来到2021年,Unity已经发布Unity2020.2.0f1c1正式版了,经历几十上百个版本的迭代。这一期间IPhone智能手机问世,手机端游戏盛行,此时Unity作为一款能够支持快速开发IOS应用的游戏开发引擎,成了手游开发者的不二之选,从此开始风靡全球,陆续支持在Sony,PS,Xbox等各种游戏平台发。壹贰叁肆于是2005年Unity1.0就诞生了2009年发布Unity2.5加入Windows支持,并于同年10月份开放免费独立版供大家使用开发。Unity未来发展方向AR、VR再次走入大众视野,人工智能等新兴技术发展得如火如荼,Unity也实时更新了相应模块组件帮助开发者能够轻松在Unity中学习制作开发这些新技术领域,创造多领域学科更多创新的可能性。小巧精美的手游1.1.4Unity经典作品《神庙逃亡》《纪念碑谷》《旅行青蛙》《愤怒的小鸟2》《元气骑士》领域特色大作1.1.4Unity经典作品《NianticPokemonGo》《王者荣耀》《崩坏3》《FreeFire》《明日方舟》端游主机游戏1.1.4Unity经典作品《原神》《炉石传说》《逃离塔克夫》《奥日与黑暗森林》影视动画领域1.1.5Unity影视作品《异教徒》《Windup》《狮子王》《头号玩家》第二节Unity注册安装1.注册Unity账号成为开发者一员。2.官网下载UnityHub软件并安装。3.UnityHub下载Unity引擎并安装。4.了解UnityHub的界面并配置使用。1.进入Unity官网2.创建UnityID3.注册账号1./2./(推荐快)1.选择右上角小人图标2.选择创建UnityID1.完善相关信息填写2.验证邮箱电话3.绑定微信等其它信息1.2.1Unity账号注册1.进入Unity官网2.下载UnityHub3.配置UnityHub1./(推荐快)2.登陆Unity账号3.点击右上角的下载Unity1.向下滑动至最新版本2.点击[从Hub下载]3.安装UnityHub1.登陆Unity账号2.选中右上角设置按钮3.编辑Unity安装路径4.激活新的许可证1.2.2安装UnityHub配置UnityHub安装路径时确保内存大于10G激活许可证:Unity个人版-我不以专业身份使用右下角按钮可与Unity客服交流1.进入安装页面2.配置安装模块3.新建Unity项目1.选中左侧的安装栏2.点击右上角的安装按钮3.选择其中一个Unity版本4.点击下一步1.根据需要安装模块2.选中安装VisualStudio3.选中WindowsBuildSupport4.选中Documentation5.选中简体中文1.点击左侧项目栏2.选中右上角新建3.编辑Unity项目名字路径4.点击创建加载Unity项目1.2.3安装Unity引擎LTS代表长期支持的Unity版本其它模块可以后期需要时再添加Unity引擎版本不具备向后兼容性项目、路径名称注意尽量为英文第三节Unity网页介绍1.浏览Unity中国官网相关介绍。2.访问Unity官方官网全面认识。3.寻找UnityAssetStore素材资源。1.3.1Unity中国官网/2.了解Unity相关产品与介绍3.方便快速下载Unity引擎4.Unity中文文档-重要5.开发者社区互动交流1.Unity中国官网加载快速Addyoursubtitle重点与特点Unity中国官网1.3.2Unity官网/2.最全、最新Unity相关资讯3.链接到Learning学习网页4.链接到AssetStore资源网页5.链接到Resources网页1.国内网页加载速度慢Addyoursubtitle重点与特点Unity官网/1.3.3Unity资源商店/2.众多Unity强大拓展插件3.众多Unity完成学习案例4.收集整理分类喜欢内容1.众多Unity相关资源素材Addyoursubtitle重点与特点UnityAssetStore第四节Unity学习资源1.UnityHub社区项目学习教程。2.Unity中文文档内容权威全面。3.UnityLearn提供完整学习路线。4.探索更多Unity学习资源内容。1.4.1UnityHub学习2.Unity官方视频直播3.Unity热门素材资源1.Unity相关技术文章UnityHub社区2.Unity文本视频式教程3.提示难度和预计时间1.Unity项目互动式教学UnityHub学习1.4.2Unity(中国)官网学习1.Unity权威手册指南2.Unity详尽脚本API3.中文导航内容分类官方文档API1.众多Unity学习教程2.细分学习路线规划3.定时在线直播教学Unity官网学习/cn/current/Manual/index.html1.4.3其它Unity学习资源微信公众号腾讯网易课堂蛮牛、泰课、siki学院YouTube、itch.io第五节Unity学习实践1.UnityHub项目教程案例。2.了解Unity引擎基本操作。3.Unity项目学习实践演示。4.Unity教程学习步骤操作。1.5.1UnityHub项目学习选择合适难度和预计时间的项目开始学习请完成UnityHub中初级项目教学2.下载LEGOMicrogame等项目3.下载FPSMicrogame等项目4.下载KartingMicrogame等项目5.选择一个教学项目打开并查看教程1.打开UnityHub选择学习栏FollowDownSteps操作步骤1.5.2UnityHub项目实践2.Unity拓展教学3.Unity交流讨论1.Unity项目介绍UnityLearn教程2.Unity步骤互动式教学3.Unity动手实操零基础1.Unity项目指导性教学Unity引擎工程项目1.5.3UnityHub学习总结《KartingMicrogame》2.工具栏-位移旋转缩放游戏对象3.Hierarchy面板创建和管理对象4.Scene面板编辑控制场景对象1.工具栏-运行播放与暂停游戏Summarize学习总结6.Project面板创建文件夹管理游戏资源7.Unity游戏成品调试与发布5.Inspector面板调节对象组件属性参数发布请选择打包PC端游戏文件1.5.4UnityHub教程学习浏览更多资源2.内容栏上方选择教程选项3.根据难度与时间安排浏览4.选择WorkingwithScripts5.项目难度初学者预计5分钟1.打开UnityHub选择学习栏FollowDownSteps操作步骤请完成UnityHub中基础教程学习1.5.5UnityHub教程学习2.Project面板创建C#脚本文件3.VS编辑器编辑代码并保存4.Unity引擎对象挂载脚本5.运行游戏1.视频文档导航详细教程Summarize学习总结6.查看Console面板输出内容第六节Unity案例制作《RollABall》1.综合实践项目-《RollABall》。2.体验完整游戏开发制作流程。3.游戏项目拓展性畅想设计开发。1.6.1第一个Unity项目《RollABall》利用谷歌插件实现页面翻译2.选择Roll-a-Ball案例教学3.确定项目难度和预计时间4.浏览项目摘要与目标内容5.如果可以使用原英语页面1.打开UnityHub中学习项目FollowDownSteps操作步骤6.阅读材料的txt介绍文件UnityAssetStore中下载完整工程文件1.6.2《RollABall》-项目准备游戏项目制作前需要进行必要准备工作FollowDownSteps项目介绍名称:《RollABall》玩法:玩家操控一个小球在搭建好的场景中滚动,来触碰平台上旋转的正方体获得积分,当达到指定积分时获得胜利。意义:巩固理论知识并实现第一次使用Unity引擎制作开发一款游戏并发布。FollowDownSteps美术策划场景搭建:蓝色地面、绿色围墙、黄色立方体、红色小球。界面搭建:积分文本框、获胜文本框。灯光布置:太阳光。音效:背景音效。特效:无。FollowDownSteps程序策划1.小球位移2.立方体旋转3.碰撞检测4.积分累加5.对象销毁6.重置游戏FollowDownSteps预设草图FollowDownSteps框架流程图依据游戏开发文档和设计要求进行制作减少1.6.3《RollABall》-新建项目尽量避免使用中文名称与路径2.修改项目名称RollABall3.修改项目位置4.点击创建Unity项目5.等待项目加载1.UnityHub选择【新建】项目FollowDownSteps操作步骤1.6.4《RollABall》-场景搭建注意先创建单个Wall预制体后再复制多个搭建2.创建“Gamearea”、“Ground”、“Wall”对象3.分别设置其Transform组件参数如图4.创建Material文件夹并参加材质球1.Hierarchy面板新建“Sphere”、“Cube”FollowDownSteps操作步骤5.分别拖拽材质球赋予游戏对象6.创建Prefab、GameArea文件夹7.将Hierarchy面板对象拓展至Project面板转变为Prefab预制体对象注意摄像机对象与Scene面板视线位置1.6.5《RollABall》-美术优化将导入的mp3歌曲文件拖拽之AudioSource组件的AudioClip处2.调节DirectionalLight对象的Light组件参数3.为MainCamera对象添加AudioSource组件4.Project面板导入PS绘制的图片一张5.Project面板右键创建Material材质球1.调节MainCamera对象的Camera组件参数FollowDownSteps操作步骤组件参数自由调节至合适即可7.完善场景布置如右图所示8.Project面板创建Script文件夹6.将导入图片拖拽至材质球Albedo处1.6.6《RollABall》-旋转功能理解预制体修改覆盖效果实现为一个Cube添加组件脚本修改其它预制体2.编辑CubeRotate如右图所示3.为Cube预制体添加CubeRotate脚本4.调节CubeRotate脚本Speed参数5.选择Overrides-ApplyAll应用到预制体1.Script文件夹中创建CubeRotate脚本FollowDownSteps操作步骤脚本中绿色内容为注释内容阅读理解即可,5行代码实现Cube旋转5.运行游戏查看效果1.6.7《RollABall》-位移功能菜单栏Edit-ProjectSettings-InputManger查看Horizontal与Vertical输入事件2.创建SphereMove脚本并编辑3.为Sphere预制体添加SphereMove脚本4.运行游戏查看效果1.为Sphere对象添加Rigidbody刚体组件FollowDownSteps操作步骤脚本中绿色内容为注释内容阅读理解即可,6行代码实现Sphere位移1.6.8《RollABall》-界面搭建理解设计模式:单例模式2.调节2个Text文本框位置组件参数3.创建UIManager脚本添加到Canvas对象4.编辑UIManager脚本如右图所示1.创建2个Text文本框命名为CountText、InfoTextFollowDownSteps操作步骤通过UIManager脚本管理所有UI对象,可以合并脚本内容。4.将2个Text对象拖拽至Canvas对象Inspector面板的UIManager组件栏中1.6.9《RollABall》-碰撞检测理解碰撞、触发检测机制函数2.创建SphereCollision脚本并拖拽到Cube对象Inspector面板3.编辑SphereCollision脚本如右图4.选择Overrides-ApplyAll应用到所有Cube1.为Cube对象预制体添加【Tag】标签CubeFollowDownSteps操作步骤了解BoxCollider、SphereCollider碰撞组件5.运行游戏查看效果1.6.10《RollABall》-相机跟随2.创建CameraFollow脚本3.为MainCamera添加CameraFollow脚本4.运行游戏查看效果1.为Sphere添加Player的Tag标签FollowDownSteps操作步骤4.菜单栏File-BuildSetting-Build打包游戏《RollABall》项目完成!打包并运行游戏!请尝试拓展创造更多游戏玩法!魔改游戏-小球跑酷/双人对战等1.6.11《RollABall》-项目总结1.Unity引擎基础使用(1)创建项目工程文件(2)菜单栏、工具栏、Scene,Hierarchy、Inspector、Project窗口面板的使用。(3)BuildSetting游戏打包游戏并运行程序文件。(4)……2.美术场景搭建(1)Unity引擎内置游戏对象创建(2)利用Unity工具栏中的位移、旋转、缩放工具进行场景搭建(3)材质创建并赋予给游戏对象(4)UI界面制作(5)灯光摄像机创建调整布局3.代码程序功能实现(1)使用C#语言定义int,float,Vector3向量等变量并赋值。(2)使用Transform组件中的Rotate()方法实现对象旋转。(3)Rigidbody组件的定义与通过GetComponent组件获得并赋值。(4)Input.GetAxis()以及Input.GetKeyDown()获得用户输入事件。(5)Debug中的Log,Warning,Error方法输出调试信息的使用。(6)Rigidbody的相关属性作用以及AddForce()方法。(7)OnTriggerEnter()方法实现触发区域检测。(8)CompareTag比较字符串与标签是否相同。(9)通过Find或FindGameObjectWithTag寻找游戏对象。请补全你在本次项目中学到的知识内容1.7.1课后拓展与下章预习/2.模仿制作并重新设计魔改《RollABall》3.阅读了解Unity中国官网的中文文档1.注册安装学习Unity引擎基础知识Addyoursubtitle课后拓展4.重点:在Unity中操作、图形、脚本课后拓展部分请务必完成下章预习部分浏览阅读大致标题内容即可Addyoursubtitle下章预习第二章Unity深入学习与掌握CONTENTS2.Unity界面编辑3.Unity代码核心4.Unity组件详解1.Unity官方文档5.Unity渲染流程6.Unity插件介绍第一节Unity官方文档1.Unity官方文档页面介绍。2.Unity学习手册使用指南。3.Unity脚本-API查找调用。1.3.1中文文档页面介绍/2.顶部右侧搜索栏快速检索内容3.顶部左侧下方进行文档版本切换4.顶部右侧下方进行文档语言切换5.展开左侧保护全部Unity引擎内容1.顶部右侧手册与脚本API页面切换Addyoursubtitle重点与特点6.中间为正文部分详细介绍对象信息尝试打开Unity官网英文文档进行阅读学习选择对应版本的文档手册与语言1.3.2Unity手册页面介绍/2.手册内容详细权威3.模块化教学方式4.其它信息源提供全方位教学1.零基础教学内容Addyoursubtitle重点与特点尽可能尝试全部浏览一遍配合网页插件笔记软件进行编辑标记1.3.3Unity学习手册使用-引擎使用1.Unity引擎资源安装2.Unity界面窗口介绍3.Unity创建游戏玩法4.Unity编辑器功能1.3.4Unity学习手册使用-脚本程序1.脚本变量函数3.生命周期流程2.时间协程事件1.Console脚本工具3.C#作业系统2.事件系统1.3.5Unity脚本API介绍2.UnityEngine包3.UnityEditor包4.Unity常用类集合5.Unity常用类集合1.API:应用程序编程接口Addyoursubtitle重点与特点Unity脚本API1.3.6Unity脚本API使用-UnityEngine.UI包2.清楚常用组件类所需导入包名3.掌握所用类描述与变量函数4.知道该类的父子继承关系1.了解不同UnityAPI模块包内容Addyoursubtitle重点与特点1.3.6Unity脚本API实践-OnPointerClick方法2.对该类内的函数调用测试3.请尝试在Unity引擎中创建UI-Button1.对该类内的变量详细了解Addyoursubtitle重点与特点4.请尝试在VisualStudio调用变量函数1.3.7Unity官方文档总结1.Unity官方文档手册(1)通过Unity官方文档对Unity引擎有个初步且全面的认识。(2)在制作开发过程前学习阅读手册相关内容。(3)了解Unity引擎专业名词术语等内容。(4)……请补全你在本次项目中学到的知识内容1.Unity官方脚本API(1)无需通读,了解常用Unity开发脚本API内容。(2)对常用Unity脚本API有熟悉认识掌握并使用。(3)能够理解Unity脚本API不同类之间的继承关系。(4)……第二节Unity界面编辑1.Unity拓展编辑器介绍。2.Unity菜单栏命令添加。3.Unity组件栏命令拓展。4.Unity创建窗口面板栏。1.1.2Unity拓展编辑器介绍2.扩展编辑器3.启动时运行Editor脚本代码4.通过脚本修改源资源5.AssetDatabase1.支持自定义菜单项和Editor功能Addyoursubtitle重点与特点6.构建播放器管线1.3.1Unity菜单栏命令添加2.在Editor中新建MyMenuCommand脚本3.编辑MyMenuCommand脚本如右图4.回到Unity引擎中查看菜单栏命令5.点击UnityProject栏中的AddMenu命令1.在Project面板创建文件夹EditorAddyoursubtitle重点与特点6.查看Console面板输出的信息在Unity中文文档中搜索MenuItem进行学习-命令横线分类、其它面板右键命令、约束条件命令等1.3.1Unity组件栏命令拓展2.新建MyComponentCommand脚本3.编辑MyComponentCommand脚本如右图4.回到Unity引擎中右键查看Transform组件5.点击弹出命令栏中MyUpdateTransform1.进入Editor文件夹Addyoursubtitle重点与特点6.查看选中对象在Scene面板中的位置变化在Unity中文文档中搜索MenuCommand进行了解学习获取组件相关信息的方式1.3.1Unity创建窗口面板栏脚本API中搜索ScriptableWizard、Section选择;EditorWindow、OnGUI绘制、Undo可撤销命令窗口面板第三节Unity组件详解1.Unity组件合集学习介绍。2.Unity组件功能参数了解。3.Unity组件模块方法调用。4.Unity组件代码核心阅读。2.3.1Unity组件合集学习介绍Component常用组件2.学会添加并调节组件相关参数1.了解Unity内置常用的功能组件Addyoursubtitle重点与特点不熟悉的组件可以点击组件名称右侧的小问号学习4.创建空脚本挂载类比与组件对象的关系3.尝试为空对象赋予合适组件变成特定对象脚本==组件组件种类定义对象类别:空对象有Camera组件所以是摄像机空对象有Light组件所以是光源组件参数定义对象特性:Light组件Type类型为Point是点光源Light组件Type类型为Spot是聚光灯组件是系统完整性的脚本内容Addyoursubtitle重点与特点2.3.2Unity组件介绍-Rigidbody刚体组件Rigidbody刚体组件2.Rigidbody刚体属性功能1.Rigidbody刚体概述介绍Addyoursubtitle重点与特点通过搜索栏可以快速检索刚体内容2.3.3Unity脚本API使用-Rigidbody刚体组件2.属于UnityEngine包以及父类3.浏览刚体变量、公共函数等内容4.选择常用的变量函数标记学习5.查看其继承的成员内容1.搜索栏搜索RigidbodyAddyoursubtitle重点与特点2.3.3Unity脚本API实践-AddForce方法2.选择AddForce公共函数3.学习参数描述以及案例1.浏览Rigidbody方法函数Addyoursubtitle重点与特点4.尝试在Unity引擎中实践2.3.4Unity组件代码核心阅读-Text组件2.选择AddForce公共函数3.学习参数描述以及案例1.浏览Rigidbody方法函数Addyoursubtitle重点与特点4.尝试在Unity引擎中实践2.3.4Unity组件代码核心阅读-Rigidbody组件2.RequireComponent强制需要某个组件搭配3.NativeHeader设置在AddComponent的位置1.在脚本中对Rigidbody右键转到其定义声明Addyoursubtitle重点与特点4.对比在Inspector面板中参数与脚本公开属性2.3.4Unity组件代码核心阅读-Rigidbody组件1.int类型数值框->publicfloatmass;2.bool类型勾选框->publicbooluseGravity;3.vector类型向量框->publicVector3useGravity;4.enum类型枚举框->publicenum‘自定义枚举类’;5.请尝试阅读其它Color组件的属性内容类型1.熟悉组件包含的常用方法接口功能;2.对比重载函数传入不同的参数类型;3.确认组件函数是否存在反回参数类型;1.了解组件类中其它私有属性方法函数;2.认识各种常用代码脚本标签的作用;3.浏览其他高级拓展组件事件方法内容;2.3.4Unity组件代码核心-综合应用2.RequireComponent强制需要某个组件搭配3.NativeHeader设置在AddComponent的位置1.在脚本中对Rigidbody右键转到其定义声明Addyoursubtitle重点与特点4.对比在Inspector面板中参数与脚本公开属性第四节Unity代码核心1.Unity脚本生命周期流程。2.Unity脚本-API基础关系。3.Unity常用父类属性方法。2.4.1Unity脚本生命周期流程2.清楚Unity事件函数的执行顺序3.在Unity引擎中运行测试周期函数1.阅读脚本API文档中的脚本概述Addyoursubtitle重点与特点2.4.2Unity常用父类属性方法2.理解重点常用类之间的继承关系3.依据脚本API类的学习程度进行合理学习4.阅读每个类的脚本API手册内容5.浏览VisualStudio中声明定义程序集1.对Unity中文文档中脚本API常用类归类Addyoursubtitle重点与特点6.尝试在Unity引擎中实践调用类属性方法尝试完善上图-添加重点类中常用的属性参数和方法2.4.3Unity常用类-Vector3属性方法Component类选中Vector3右键转到其声明定义进行查看类内容2.4.3Unity常用父类属性方法MonoBehaviour类Behaviour类Component类尝试阅读实践调用MonoBehaviour类内容以及父类2.4.3Unity常用父类属性方法Component类Object类尝试阅读实践调用MonoBehaviour类内容以及父类2.4.3Unity常用父类属性方法Component类Object类尝试阅读实践调用MonoBehaviour类内容以及父类第五节Unity渲染流程1.Unity渲染管线流程介绍。2.Unity表面着色器学习。3.Unity片元着色器学习。4.UnityShaderLab语法。2.5.1.Unity渲染管线流程介绍Rendering:渲染是根据三维模型数据,按照一定的渲染流程计算屏幕窗口中每个像素点的颜色,并实时绘制出来的过程。ComputerGraphics(CG):计算机图形学是一门研究如何利用计算机进行图形的计算、处理和显示的学科我们需要加载一个模型,首先是CPU加载模型的数据,加载到内存中,然后将加载到内容中的数据交给GPU进行渲染。2.5.1.Unity渲染管线流程介绍GraphicsPipelineModelingAnimationRendering像素绘制逐面片绘制如果我们需要加载一个模型,首先是CPU加载模型的数据,加载到内存中,然后将加载到内容中的数据交给GPU进行渲染。2.5.1.Unity渲染管线流程介绍/2.顶部右侧搜索栏快速检索内容3.顶部左侧下方进行文档版本切换4.顶部右侧下方进行文档语言切换5.展开左侧保护全部Unity引擎内容1.顶部右侧手册与脚本API页面切换Addyoursubtitle重点与特点6.中间为正文部分详细介绍对象信息尝试打开Unity官网英文文档进行阅读学习选择对应版本的文档手册与语言第六节Unity插件介绍1.Unity美术Shader插件。2.Unity程序编辑器插件。3.Unity其它拓展性插件。2.6.1Unity美术Shader插件ShaderGraphRealTimePaintingProBuilderPostProcessCinemachineDOTween2.6.2Unity程序编辑器插件Bolt为Unity带来了完整的视觉脚本无需编写任何代码即可创建游戏机制。PhotonPUN+是一款制作多人联机游戏的插件。A*PathfindingProject是一个功能强大并且易于使用的Unity寻路系统。第三章Unity界面设计交互引擎CONTENTS3.2IMGUI“即时模式”界面系统3.3UGUI图形用户界面系统3.5界面设计交互案例-《RollABall》3.1图形用户界面交互设计3.6界面设计总结与拓展学习3.4图形用户界面交互系统图形用户界面交互设计1.界面交互设计概述2.界面交互设计原则3.界面交互设计赏析第一节3.1.1界面交互设计概述 UI即用户界面(UserInterface)的简称,可分为网页UI设计,手机应用UI设计,游戏UI设计。其他游戏UI设计还需要考虑到移动端或PC端等呈现类型。 UI设计主要指界面的样式,美观程度,好的UI设计不仅是让游戏更加吸引玩家,还要让游戏的操作变得轻松自由,充分符合游戏风格和内容定位。 界面设计(Interfacedesign):不同的搭配会系统地引导玩家的游戏体验。推动玩家的想象与再创造力。界面设计语言要能够代表游戏玩家说话而不是设计者。所谓代表,就是把大部分玩家的想法实体化表现出来,主要通过造型,色彩,布局等方面来表达,不同的变化会产生不同的心理感受。 图形用户界面设计不仅是有好的图标、风格、布局,还需要考虑到至关重要的界面交互。 界面交互(Interfaceinteraction):界面美观的整体设计,而使用上对软件的人机交互、操作逻辑也是同样重要的。快捷方便的操作,不仅会提高用户的工作效率,还使得界面在功能实现上变得简洁而高效。3.1.2界面交互设计原则AddyoursubtitleUI图标设计Addyoursubtitle界面布局Addyoursubtitle界面交互1.统一性原则:UI风格、色彩、纹理、结构等内容需要契合游戏主题。2.一致性原则:窗体大小、形状、色彩的一致性,文本框、命令按钮等界面元素外观的一致性。3.视觉明确性:图标和按钮的图形要易于识别。图标的造型语义要一目了然。1.易于使用性:界面设计尽可能简洁,突出主要信息,便于玩家使用。2.统一性原则:尽量保证界面布局统一,色调统一,使用同一种风格贯穿整个游戏界面设计。3.布局合理:符合玩家习惯性认知的概念模型、操作适应性,界面设计在操作上需要满足大部分玩家的认知范围,确定受众人群布局审美习惯。1.易用性原则:提供常用操作的快捷方式,根据常用操作的使用频度大小,减少操作次数。2.容错原则:界面要有容错能力。3.实时的反馈:

界面的视觉与操作上必须有及时的反馈,4.自由度:游戏玩家在与游戏进行互动时的方式具有多重性3.1.3界面交互设计赏析《纪念碑谷》主页面关卡界面设置界面游戏界面结束界面截图界面《纪念碑谷》界面设计简洁明快、布局合理、易于使用、美观大方,充分考虑游戏的美术风格及故事背景实现了用户界面要和游戏内容相统一。IMGUI“即时模式”界面系统1.IMGUI系统概述2.IMGUI常用控件解析3.IMGUI案例实战4.IMGUI高级使用第二节3.2.1IMGUI界面概述Unity中的图形用户界面(IMGUI)编程,Unity有一个非常强大的GUI脚本API,它允许你使用脚本快速创建简单的菜单和GUI。IMGUI系统通常不适合用于玩家可能使用和交互的普通游戏内用户界面。即时模式”指的是创建和绘制IMGUI的方式。要创建IMGUI元素,必须编写进入名为OnGUI的特殊函数的代码。显示界面的代码将在每帧执行,并绘制到屏幕上。除了OnGUI代码附加到的对象,或者层级视图中与绘制的可视元素相关的其他类型对象之外,没有其他持久性游戏对象。IMGUI允许使用代码创建各种功能GUI。通过该系统,无需创建游戏对象,手动定位这些对象,然后编写一个处理对象功能的脚本,而只需几行代码即可立即执行所有操作。该代码将生成通过单个函数调用进行绘制和处理的

GUI控件。IMGUI“即时模式”GUI系统,不同于Unity基于游戏对象的主UI(UGUI)系统,是一个代码驱动的GUI独立功能系统。IMGUI主要用作程序员的工具,创建游戏内调试显示和工具,为脚本组件创建自定义检视面板,创建新的编辑器窗口和工具以扩展Unity本身。IMGUI“即时模式”GUI系统,不同于Unity基于游戏对象的主UI(UGUI)系统,是一个代码驱动的GUI独立功能系统。IMGUI主要用作程序员的工具,创建游戏内调试显示和工具,为脚本组件创建自定义检视面板,创建新的编辑器窗口和工具以扩展Unity本身。3.2.2GUI常用控件解析-常用GUI函数及属性更多GUI控件介绍阅读Unity中文手册UI中即时模式GUI中的控件部分LabelLabel

为非交互式控件。此控件仅用于显示目的。不能单击,也不能以其他方式进行移动。此控件最适合于纯粹显示信息之用。ButtonButton

是典型的交互式按钮。点击按钮时,无论鼠标按下多久,都只会响应一次。松开鼠标按键后会立即响应。TextFieldTextField

控件是一个包含文本字符串的交互式可编辑单行字段。ToggleToggle

控件创建具有持久开/关状态的复选框。用户可通过点击该复选框来更改状态。ToolbarToolbar

控件本质上是一行

Button。在Toolbar上一次只能有一个Button处于激活状态,并且此Button将一直保持激活状态直到点击其他Button。此行为模拟典型Toolbar的行为。…………3.2.2GUI常用控件解析-GUI函数具体参数方法GUI类中有Box、Button、Label等函数可以使用,而这些GUI界面函数都有多个重载方法以及参数可以设置调用,下面我们以Button为例阅读其脚本API内容进行介绍: GUI.Button静重载态函数可以传入对象位置于文本内容或图片等参数可供选择。GUI.Button可选设置的参数有:position屏幕上用于按钮的矩形位置text按钮上显示的文本image按钮上显示的Texturecontent按钮的文本、图像和工具提示style要使用的样式publicstaticboolButton(Rectposition,stringtext);publicstaticboolButton(Rectposition,Textureimage);3.2.2GUI常用控件解析-GUI常用静态变量函数使用案例2.Hierarchy面板新建“CreateEmpty”3.挂载“ExampleClass01”脚本。4.运行点击Button查看效果。1.新建C#脚本“OnGUI_Test”并添加一下代码Addyoursubtitle重点与特点3.2.3GUI综合案例2.新建MyComponentCommand脚本3.编辑MyComponentCommand脚本如右图4.回到Unity引擎中右键查看Transform组件5.点击弹出命令栏中MyUpdateTransform1.进入Editor文件夹Addyoursubtitle重点与特点6.查看选中对象在Scene面板中的位置变化UGUI图形用户界面系统1.UGUI界面系统概述2.UGUI常用控件解析第三节3.2.1UGUI界面系统概述Unity引擎中的UGUI系统可以方便开发者快速直观地创建用户界面。UGUI系统中预定义了许多常用的组件例如Canvas、Text、Button等,可以使得设计师在不使用任何代码的前提下,就可以简单快速的在游戏中建立其一套UI界面。AddyoursubtitleUGUI概述UGUI系统包含了Canvas、Text、Image、Button、Toggle、Slider、Scrollbar、InputField、Panel、ScrollView组件。3.3.2UGUI常用控件解析-画布布局组件在Unity中文文档中搜索Canvas进行了解学习获取组件相关信息的方式Canvas画布组件Canvas组件:其它UI元素都必须是此类画布的子项绘制元素的顺序是依据Hierarchy中UI元素顺序进行绘制三种渲染模式:ScreenSpace–OverlayScreenSpace–CameraWorldSpaceCanvasScaler组件CanvasScaler组件:用于制画布中UI元素的整体缩放和像素密度。三种缩放模式:ConstantPixelSizeScaleWithScreenSizeConstantPhysicalSizeRectTransform组件矩形变换(RectTransform):用于调整UI元素对应组件进行布局。常用属性:Pos(X,Y,Z)Width/HeightScale按Ctrl,Shift键进行相对布局3.3.2UGUI常用控件解析-可视化组件Text组件Image组件RawImage组件Text组件常用属性:Text、Font、FontStyle、FontSize、Alignment、ColorImage组件常用属性:SourceImage、ColorRawImage组件常用属性:Texture、Color3.3.2UGUI常用控件解析-常用交互式组件Button组件Toggle组件Slider组件图形用户界面交互系统1.主机端用户界面交互设计2.移动端用户界面交互设计3.EventTrigger交互组件4.UGUI支持的事件第四节3.2.1主机端用户界面交互设计1.获取鼠标当前信息:Input.mousePosition获取鼠标当前的像素坐标位置Input.mouseScrollDelta获取当前的鼠标滚动增量2.鼠标按键检测有两种方式Input.GetMouseButtonXXX()根据函数类型与传入参数检测输入事件Input.GetKey(“XXX”)根据虚拟轴定义鼠标输入事件进行检测2.具体鼠标输入案例3.2.1移动端用户界面交互设计1.通过Input.Touch获取移动端输入交互数据fingerId触摸的唯一索引position触摸的屏幕位置。deltaPosition自上一帧以来的屏幕位置变化。deltaTime自上次状态变化以来经过的时间phase描述“阶段”或触摸状态。确定触摸刚开始、移动还是刚抬起手指。BeganBeganMoved手指在屏幕上进行了移动。Stationary手指正在触摸屏幕但自上一帧以来尚未移动。Ended从屏幕上抬起了手指。这是触摸的最后一个阶段。Canceled这是触摸的最后阶段,执行超过五次触摸后系统取消对触摸的跟踪。2.具体移动端用户界面交互案例:获取手指点击屏幕事件,并判断手指是否处于持续按住屏幕移动状态。3.2.1EventTrigger交互组件事件系统(EventSystem)支持许多事件,并可在用户编写的自定义输入模块中进一步自定义它们。在添加了EventSystem对象即场景中有EventSystem与StandaloneInputModule组件后,可以为其它UI元素可以添加EventTrigger交互组件定义交互行为触发事件。PointerClick在同一对象上按下再松开指针时调用PointerDown在对象上按下指针时调用PointerUp松开指针时调用Drag发生拖动时在拖动对象上调用2.为Image对象添加EventTrigger组件,并添加PointerClick事件3.编写测试脚本Text_Trigger如右。1.Hierarchy面板新建ImageUI元素,默认添加Canvas与EventSystem对象FollowDownSteps操作步骤usingUnityEngine;publicclassTestC:MonoBehaviour{publicvoidATest(){Debug.Log("Image被鼠标点击!");}}4.将Text_Triggerj脚本拖拽至EventTrigger组件的PointerClick处,并调用AText方法。5.运行点击Image图片,可以看到Cosole面板输出“Image被鼠标点击!“3.2.1UGUI支持的事件事件系统支持许多事件,并可在用户编写的自定义输入模块中进一步自定义它们。独立输入模块和触摸输入模块支持的事件由接口提供,通过实现该接口即可在MonoBehaviour上实现这些事件。如果配置了有效的事件系统,则会在正确的时间调用事件。1.针对UGUI系统中的所有UI组件元素都可以添加交互事件接口,以实现UI元素界面的交互检测功能:2.创建Text_Listener脚本并编辑如左。3.编写测试脚本Text_Trigger如右。1.Hierarchy面板新建Image对象。FollowDownSteps操作步骤4.将Text_Listener脚本添加到Image对象上5.运行点击测试Image对象,查看Console面板输出OnPointerClick。usingUnityEngine;usingUnityEngine.EventSystems;publicclassText_Listener:MonoBehaviour,IPointerClickHandler{publicvoidOnPointerClick(PointerEventDataeventData){Debug.Log("OnPointerClick");}}3.2.1UGUI支持的事件-可交互组件监听事件1.针对UGUI系统中的可交互组件可以直接添加监听事件后就无需在Unity引擎编辑器中拖拽形式绑定事件了2.以Button组件脚本添加监听事件为例2.创建Text_Listener脚本并编辑如左。3.将Text_Listener脚本添加到Button对象组件中。1.Hierarchy面板新建Button对象。FollowDownSteps操作步骤4.运行点击Button测试,查看Console面板输出ButtonClicked。usingUnityEngine;usingUnityEngine.UI;publicclassTestC:MonoBehaviour{void(){Buttonbtn=this.GetComponent<Button>();btn.onClick.AddListener(OnClick);}privatevoidOnClick(){Debug.Log("ButtonClicked");}}第五节Unity案例制作《RollABall》1.综合实践项目-《RollABall》。2.体验完整游戏开发制作流程。3.游戏项目拓展性畅想设计开发。1.6.2《RollABall》-界面交互设计策划游戏项目制作前需要进行必要准备工作FollowDownSteps项目介绍界面设计:主页面、运行界面、设置页面布局设计FollowDownSteps美术策划1.主界面搭建Image设置标题图片Image切换填充模式Button更改按钮样式InputFiled文本框样式2.运行界面搭建Panel页面布局RawImage播放视频3.设置界面搭建Toggle组件控制Slider组件调节音量FollowDownSteps程序策划1.Button点击事件触发2.InputFiled文本输入3.玩家姓名数据保存4.Image进度条加载5.场景跳转切换功能6.UI界面面板显示隐藏7.Toggle控制启用声音8.Slider控制音量大小FollowDownSteps预设草图依据游戏开发文档和设计要求进行制作交互设计:鼠标点击、鼠标滑动、键盘输入交互设计1.6.3《RollABall》-项目准备尽量避免使用中文名称与路径2.导入RollABall_UI.unitypackage资源3.修改Sprite文件夹下的图片格式为Sprite1.新建名为RollABall_UI的Unity项目FollowDownSteps操作步骤1.6.8《RollABall》-主界面布局12.创建Image命名”img_Title”,Image组件赋予img_球球与方方并SetNativeSize,移动位置。3.创建Button命名”btn_BeginGame“,Image组件赋予btn_Trangle,设置合适缩放与位置。1.创建Image命名”img_Background”,Image组件赋予img_GackGround。按Shift键设置stretch为stretch-stretch。FollowDownSteps操作步骤4.删除“btn_BeginGame”下的Text对象。点击Scene面板工具栏中的2D进入2D模式。1.新建Scene场景命名为RollABall_Main2.设置Canvas对象的Canvas-RenderMode为Overlay模式;CanvasScaler的UIScaleMode为ScaleWithScreenSize和Match设置为11.6.8《RollABall》-主界面布局2FollowDownSteps操作步骤1.创建InputField命名“inp_UserName”,Image组件赋予img_TCube1。2.设置其中的Placeholder与Text的Text组件Font字体为ziti、Style为Bold、Size为124、Alignment为居中3.创建Slider对象命名为“img_LoadSlider,Image组件赋予img_LoadSlider与设置大小。4.调整img_LoadSlider对象Image组件的Color属性、ImageType类型为Filled、FillMethod为Horizontal。1.6.8《RollABall》-运行页面布局2.创建Button命名为but_AudioControl并设置SourceImage为btn_AudioSound和位置大小。3.新建Panel命名为pan_User,设置合适位置与Width、Height值。1.修改txt_Count、txt_Win的text组件样式。FollowDownSteps操作步骤4.在Panel下创建一个RawImage和Text,分别命名为raw_UserImg、txt_Username。对象具体位置参数如上图所示,运行查看效果。5.在Video文件夹下创建RenderTexture并赋值到raw_UserImg的RawImage组件Texture处。6.raw_UserImg对象添加VideoPlayer组件,VideoClip处赋予Video文件夹下的UserVideo1.6.8《RollABall》-设置页面布局2.在pan_Setting下创建Button命名为btn_Close并设置SourceImage为btn_Close。3.创建三个Text命名为img_Setting、img_togSound、img_sliSound并设置图片。1.新建Panel命名为pan_Setting并设置SourceImage为img_TCube2。FollowDownSteps操作步骤4.创建Toggle命名为tog_Sound并设置大小位置样式。对象具体位置参数如上图所示,运行查看效果。4.创建Slider命名为sli_Sound并设置大小位置样式。1.6.8《RollABall》-InputField输入事件3.将Canvas对象拖拽到Runtime栏下方。4.RunTime栏右侧下拉栏中找到UI_Main.SetName方法。2.点击imp_UserName对象InputField组件的OnValueChanged处“+”号。FollowDownSteps操作步骤5.拖拽imp_UserName对象到UI.Main.Setname下方。点击Scene面板工具栏中的2D进入2D模式。1.新建脚本“UI_Main”后挂在在Canvas对象上,并打开编辑脚本如右图。1.6.8《RollABall》-Button点击事件2.btn_BeginGame的Button组件添加UI_Main.GeinGame点击事件。FollowDownSteps操作步骤点击Scene面板工具栏中的2D进入2D模式。1.添加UI_Main脚本内容如右图。1.6.8《RollABall》-Image模拟加载进度条FollowDownSteps操作步骤点击Scene面板工具栏中的2D进入2D模式。1.编辑UI_Main脚本,并将img_LoadSlider拖拽至Canvas对象组件的UI_Main中。2.将img_LoadSlider的Image组件的FillAmount调整至0。3.点击菜单栏File-BuildSetting点击AddOpenScenes添加当前场景。4.打开RollABall_Game场景并同样添加到ScenesinBuild中。5.回到RollABall_Main中运行游戏查看效果。1.6.8《RollABall》-Button显示隐藏界面FollowDownSteps操作步骤点击Scene面板工具栏中的2D进入2D模式。2.打开脚本“UI_Game”后编辑脚本如右图。3.将pan_Setting设置为隐藏并拖拽至Canvas对象UI_Game组件对应位置。1.打开RollABall_Game场景4.设置but_AudioControl对象的Button组件OnClick事件为Canvas对象的Show_Setting方法。5.设置but_Close对象的Button组件OnClick事件为Canvas对象的Hide_Setting方法。6.运行查看效果。1.6.8《RollABall》-获取数据与UI点击暂停FollowDownSteps操作步骤点击Scene面板工具栏中的2D进入2D模式。2.拖拽txt_UserName、raw_UserImg到Canvas对象的UI_Game组件对应位置。3.给raw_UserImg添加EventTrigger组件选择PointerClick事件,并设置调用StopVideo函数。1.打开脚本“UI_Game”后编辑脚本如右图。1.6.8《RollABall》-Toggle与Slider控制声音FollowDownSteps操作步骤点击Scene面板工具栏中的2D进入2D模式。2.拖拽MainCamera对象至Canvas对象的UI_Game组件Bg_Audio处。3.为Toggle组件添加Canvas对象UI_Game的Tog_Audio方法。1.打开脚本“UI_Game”后编辑脚本如右图。4.为Slider组件添加Canvas对象UI_Game的Sli_Audio方法。5.运行测试效果。1.6.8《RollABall》-界面交互接口事件FollowDownSteps操作步骤点击Scene面板工具栏中的2D进入2D模式。2.为raw_UserImg添加EventTrigger组件与PointerClick事件。3.将Canvas对象移动至PointerClick处并调用UI_Game.UserVideo方法1.打开脚本“UI_Game”后编辑脚本如右图。4.运行点击raw_Usering对象,查看效果。第六节界面总结拓展学习1.界面插件软件拓展2.界面设计书籍介绍3.界面设计视频教程3.5.1界面插件软件拓展3.5.2界面设计介绍游戏UI设计从入门到精通UnityUI设计精解uGUI第四章Unity物理引擎玩法设计CONTENTS4.2

物理碰撞体组件解析4.3物理关节组件解析4.5

物理引擎高级系统设置4.1

物理基础知识4.6

物理引擎玩法总结与拓展学习4.4碰撞触发事件检测物理基础知识1.Prefab预制体与实例化游戏对象2.Rigidbody刚体组件3.ConstantForce恒定力组件4.碰撞触发事件5.物理材质第一节4.1.1Prefab预制体与实例化游戏对象

Prefab预制体可以看作对象资源的一个模板,创建出来后可以被轻松的反复使用,同时也可以统一修改场景中所有用到该预制体对象的组件属性,参数等配置对象值。通常应用于反复需要被使用的石头、树木等环境资源,多次出现的NPC非玩家角色,不断生成并销毁的子弹对象等。1.创建使用实例化对象的常用方式有两种,一种是在编辑状态将Project面板中的预制体拖拽至Scene面板中进行创建,还有一种则是在游戏运行时通过代码的形式动态生成。2.方法函数常用运行实例化游戏对象函数有CreatePrimitive()、Instantiate()。其中Instantiate函数有以下几种重置方法,具体参数内容介绍见表4.1.1-1所示。original要复制的现有对象rotation新对象的方向position新对象的位置parent指定给新对象的父对象instantiateInWoldSpace指定父对象的方式是保持世界位置(true)或是相对位置(false)4.1.1Prefab预制体与实例化游戏对象usingUnityEngine;publicclassCreatePrefab:MonoBehaviour{publicGameObjectcube;publicTransformt_cubeWall;voidUpdate(){if(Input.GetKeyDown(KeyCode.R))for(intx=0;x<3;x++)for(inty=0;y<3;y++){GameObjectgameObject=Instantiate(cube,newVector3(x,y,1),Quaternion.identity,t_cubeWall);gameObject.AddComponent<Rigidbody>();//组件的获取gameObject.transform.position=newVector3(x,y,0);}}}3.案例实践 以Prefab为例介绍预制体的创建和使用方法。案例代码案例效果图4.1.2Rigidbody刚体组件

Rigidbody刚体组件是实现游戏对象物理行为的主要组件。对象添加刚体组件后便可以设置相关物理属性例如重力、阻力等参数,获取当前位置、速度等信息,也可以自定义取消受重力影响以及限制对象运动位置旋转状态。属性功能属性功能Mass对象的质量(Kg)CollisionDetection碰撞检测模式Drag空气阻力大小velocity刚体的速度矢量UseGravity是否受重力影响position刚体的位置IsKinematic是否由物理引擎驱动rotation刚体的旋转Constraints对刚体运动限制worldCenterOfMass刚体在世界空间中的质心FreezePosition刚体位置移动限制FreezeRotation刚体局部旋转限制1.创建使用选中Hierarchy面板对象,点击菜单Component->Physics->Rigidbody添加刚体组件;或者选中需要添加的对象,点击Inspector面板的AddComponent按钮,搜索Rigidbody并添加刚体组件。4.1.2Rigidbody刚体组件usingUnityEngine;publicclassDemo_Rigidbody:MonoBehaviour{publicRigidbodycube;publicfloatforceValue=10.0f;//设置力的大小voidStart(){cube.mass=1.0f;//设置Cube质量为1kgcube.useGravity=true;//设置Cube受重力影响cube.freezeRotation=true;//设置Cube无法旋转}voidUpdate(){if(Input.GetKey(KeyCode.F))//以世界坐标系的Z轴方向施加力cube.AddForce(Vector3.forward*forceValue,ForceMode.Acceleration);if(Input.GetKeyDown(KeyCode.E))//以自身坐标轴-Z轴方向施加力cube.AddRelativeForce(Vector3.back*forceValue,ForceMode.Impulse);if(Input.GetKey(KeyCode.T))//以世界坐标系的X轴方向施加扭矩cube.AddTorque(Vector3.right*10.0f,ForceMode.Impulse);if(Input.GetKeyDown(KeyCode.R))//按下P键重置位置cube.MovePosition(Vector3.zero);}voidDebugInfo(){Debug.Log("velocity:"+cube.velocity);Debug.Log("velocity:"+cube.position);Debug.Log("velocity:"+cube.rotation);}}3.案例实践 以Rigidbody刚体组件为例,测试不同参数函数作用效果,具体操作步骤如下。案例代码案例效果图4.1.3ConstantForce恒定力组件

恒定力(ConstantForce)可用于快速为刚体对象添加恒定力,使对象在游戏中受到力的作用而运动。例如飞机航行、火箭发射、马达转动等运动。1.创建使用选中Hierarchy面板对象,点击菜单Component->Physics->ConstantForce添加恒定力组件;或者选中需要添加的对象,点击Inspector面板的AddComponent按钮,搜索ConstantForce并添加恒定力组件。2.属性介绍有关ConstantForce恒定力组件属性参数介绍见表4-5。属性功能Force每帧都在向刚体施加力,相对于世界坐标系的矢量RelativeForce每帧都在向刚体施加力,相对于刚体坐标系的矢量Torque每帧都在向刚体施加扭矩旋转,相对于世界坐标系的矢量RelativeTorque每帧都在向刚体施加扭矩旋转,相对于刚体坐标系的矢量4.1.4物理材质3.案例实践 使用ConstantForce恒定力组件就可以实现给对象添加作用力。组件说明案例效果图4.1.4物理材质

在真实世界当中,刚体对象碰撞效果会因为材质的不同而产生不同作用力的效果。3D物理材质指的是碰撞体表面的材质,PhysicMaterial物理材质用于调整碰撞对象的摩擦力和反弹效果。例如即便是相同质量的乒乓球,网球,篮球,保龄球从同样高度进行下落到地面上反弹的高度也会有所不同1.创建使用 点击菜单栏Assets->Create->PhysicMaterial或者在Project面板右键Create->Phys

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论