《游戏场景设计》课件-模块4 Unity脚本系统_第1页
《游戏场景设计》课件-模块4 Unity脚本系统_第2页
《游戏场景设计》课件-模块4 Unity脚本系统_第3页
《游戏场景设计》课件-模块4 Unity脚本系统_第4页
《游戏场景设计》课件-模块4 Unity脚本系统_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

模块4Unity脚本系统START初识脚本1学习变量2学习条件语句3目录Contents学习循环语句4学习函数定义与调用5学习结构体6学习类与对象7综合实践8初识脚本1任务4.1初识脚本4.1.1创建脚本在Unity中创建脚本的四种方法:第一种,单击“Project”面板左上方的“Create(+号)”菜单创建脚本;第二种,在“Project”面板中,右击“Assets”文件夹或其子文件夹,选择“Create”→“C#Script”来创建脚本;第三种,通过从主菜单选择“Assets”→“Create”→“C#Script”来创建脚本;第四种,通过游戏物体添加脚本组件来创建脚本。4.1初识脚本4.1.2选择脚本后端Unity存在两个脚本后端“Mono”和“IL2CPP(IntermediateLanguageToC++)”,它们各自使用不同的编译技术:(1)Mono:使用即时(JIT)编译,在运行时按需编译代码。(2)IL2CPP:使用提前(AOT)编译,在运行之前编译整个应用程序。具体选择哪一种脚本后端,需要依据Unity应用程序所构建的目标平台来决定。有的平台不支持JIT编译,因此不能选择Mono后端。有的平台支持JIT和Mono,但不支持提前编译(AOT),因此不能选择IL2CPP后端。当一个平台可以支持两个后端时,Unity默认选择的是Mono脚本后端。4.1初识脚本4.1.2选择脚本后端改变默认支持的脚本后端的步骤4.1初识脚本4.1.3学习编辑脚本通过Unity的偏好设置改变脚本资源编辑器4.1初识脚本4.1.3学习编辑脚本Unity中,打开脚本资源有两种方式:

第一种,在“Project”面板中的“Assets”文件夹下的“Scripts”文件夹中,找到脚本文件,双击此脚本文件打开;第二种,在“Hierarchy”面板中,选中游戏物体,在“Inspector”面板中找到脚本组件,单击右上方的扩展按钮,选择“EditScript”选项,默认脚本编辑器将立即启动,打开此脚本文件。4.1初识脚本4.1.3学习编辑脚本

脚本模板4.1初识脚本4.1.4运行脚本

脚本在VisualStudio集成工具中编辑完成后,保存。这时,脚本则会自动加载到Unity中。

在Unity中,单击“Play”运行按钮,脚本则随着项目执行而运行,具体结果则呈现在界面上或者Console(控制台)上。学习变量2任务4.2.1初识变量4.2学习变量变量是计算机语言中能储存计算结果或表示值的抽象概念,实质上它代表了计算机存储数据的一块内存区域。在程序运行中,变量的值可以随着实际需要而随时变化。通过变量名引用变量,就可以查看或更改变量的值。4.2.2

变量的命名规则只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线;严格区分大小写;不能与C#关键字相同;不能与C#系统中的类名相同。4.2学习变量4.2.3数据类型4.2学习变量整数类型4.2学习变量浮点数类型4.2学习变量字符类型4.2学习变量C#中的字符类型通过char关键字来定义。字符变量可以用单个字符和转义字符来赋值。在表示一个字符常量时,单引号内的有效字符数量必须且只能是一个,而且不能是单引号或者反斜杠(\)。例如,可以采用如下方式字符变量赋值:charc='H';//字符Hcharc='\x0048';//字符H,十六进制转义符(前缀为\x)charc='\u0048';//字符H,Unicode表示形式(前缀为\u)charc='\r';//回车,转义字符布尔类型4.2学习变量布尔类型的类型标识符是bool。布尔类型数据用于表示逻辑真或逻辑假。例如,可以采用如下方式布尔变量赋值:boolb1=true;boolb2=false;4.2.4变量的定义4.2学习变量变量的定义格式如下:[访问修饰符]数据类型变量名[=初始值];例如:

intage=20;intid;也可以同时声明一个或多个给定类型的变量,例如:inta=1,b=2,c=3;4.2.5变量实践4.2学习变量实践任务输入两个整数,求这两个整数的和。学习条件语句3任务4.3学习条件语句4.3.1条件判断语句条件判断语句的类型(1)形式一。①格式。if(表达式){语句;}②执行过程。如果表式的值为true,语句执行,否则,语句不执行。

4.3学习条件语句4.3.1条件判断语句条件判断语句的类型(2)形式二。①格式。if(表达式){语句1;}else{语句2;}②执行过程如果表达式的值为true,语句1执行,否则,语句2执行。

4.3学习条件语句4.3.1条件判断语句条件判断语句的类型(3)形式三。

①格式。if(表达式1){

语句1;}else{if(表达式2)

语句2;else{if(表达式3){

语句3;}.......else{

语句n;}}②执行过程如果表达式1的值为true,语句1执行,否则,如果表达式2的值为true,语句2执行,否则,如果表达式3的值为true,语句3执行,.......,否则,语句n执行。4.3学习条件语句4.3.2条件分支语句条件分支语句,是用关键字switch引出的结构化语句,也称之为switch多分支语句。它的作用是:存在多条分支,当满足其中的一个条件时,就执行case后的语句,直到遇到break语句结束。4.3学习条件语句4.3.2条件分支语句条件分支语句的语法结构switch(表达式){caseE1:语句组1;break;caseE2:语句组2;break;…….caseEn:语句组n;break;default:语句组;break;}4.3学习条件语句4.3.3条件语句实践实践任务(1)任务1:用户输入年龄,如果年龄大于等于18岁,则显示“你已成年!”。(2)任务2:明天如果是晴天,则外出工作;否则,呆在家里工作。(3)任务3:用户输入一个整数,如果该数大于10,则输出“该数大于10”;如果该数小于10,则输出“该数小于10”;如果等于10,则输出“该数等于10”。(4)任务4:输入一个时间,如果是6点,则输出“该起床了”;如果是12点,则输出“该吃饭了”,否则,输出“该睡觉了”。学习循环语句4任务4.4学习循环语句4.4.1初识循环语句

在实际问题中会出现许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,取决于循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构。循环语句是由循环体及循环的终止条件两部分组成的。

常用的有三种类型的循环语句:for语句、while语句和do-while语句。4.4学习循环语句4.4.1初识循环语句for循环for(表达式1;表达式2;表达式3){循环体语句;}4.4学习循环语句4.4.1初识循环语句while循环while(判断条件){

循环体语句;}4.4学习循环语句4.4.1初识循环语句do-while循环do{

循环体语句;}while(判断条件);4.4学习循环语句4.4.2循环语句实践实践任务连续输出100行“我下次一定要细心!”。4.4学习循环语句4.4.2循环语句实践任务拓展项目中共需要设置10个敌人,遍历生成敌人的编号。学习函数定义与调用5任务4.5学习函数定义与调用4.5.1常用的函数函数实现功能Awake唤醒事件,在脚本实例被创建时调用,只执行一次Start用于游戏对象或游戏场景的初始化,在场景被加载时调用,只执行一次Update更新事件,每帧执行一次OnEnable启用事件,在每次激活脚本时调用FixedUpdate固定更新事件,0.02秒执行一次。处理所有物理组件相关的更新OnGUI用来绘制交互界面,每帧会调用多次OnDisable禁用事件,取消脚本的激活状态后调用LateUpdate延迟更新,每帧执行一次,在Update事件之后执行。一般处理和相机有关的更新。OnDestroy当前脚本被销毁时调用4.5学习函数定义与调用4.5.2函数的定义结构1.无参函数返回类型函数名(){

函数体

}2.有参函数返回类型

函数名(参数类型

参数名,参数类型

参数名,……){函数体}4.5学习函数定义与调用4.5.3函数的调用形式1.无参函数的调用格式

函数名()2.有参函数的调用格式

函数名(实参,实参,……..)4.5学习函数定义与调用4.5.4函数实践实践任务我们需要不定期去超市选购一定数量的生活用品,比如洗发水、牙刷、毛巾等,每次都需要结算所买这些商品的总价。假设洗发水15元/瓶,牙刷5元/把,毛巾6元/条。4.5学习函数定义与调用4.5.4函数实践任务拓展创建一个新场景。在此场景中,设置背景,并添加Start按钮和Exit按钮。当点击Start按钮时,进入Variable主场景;当点击Exit按钮时,退出整个项目。学习结构体6任务4.6学习结构体4.6.1函数实践结构体类型的声明[访问修饰符]struct结构体类型名称{[字段访问修饰符]数据类型字段1;[字段访问修饰符]数据类型字段2;...[字段访问修饰符]数据类型字段n;}4.6学习结构体4.6.2结构体变量的声明定义结构体变量的一般格式如下:

结构体类型结构变量名;结构体类型Student声明后,定义它的两个变量如下:Students1,s2;4.6学习结构体4.6.3结构体变量的使用访问结构变量字段:

结构变量名.字段名s1.number表示结构体变量s1的学号。表示结构体变量s2的姓名。结构体变量的字段可以在程序中单独使用,与普通变量用法完全相同。4.6学习结构体4.6.4结构体变量的赋值结构体变量的字段赋值:使用方法与普通变量相同。例如:s1.number=101;结构体变量之间赋值:要求赋值的两个结构体变量必须类型相同。例如:s1=s2;4.6学习结构体4.6.5结构体的序列化[System.Serializable]添加在类、枚举、结构体前面,可以让这些类型的公有对象或变量在Inspector面板中显示出来。[SerializeField]是设置非public成员对象在Inspector中显示的。4.6学习结构体4.6.6结构体实践实践任务定义结构体类型“Student”,分别设置学号、姓名、性别、年龄、班号等字段。用此结构体类型定义两个结构体变量“s1”和“s2”,这两个变量除了学号和姓名不同之外,其他信息的都相同。将两个变量的信息显示在控制台上。4.6学习结构体4.6.6结构体实践任务拓展在游戏物体“Cube”的“Inspector”面板中,设置结构体变量的基本信息,包括姓名、性别和年龄,方便进行修改。学习类与对象7任务4.7学习类与对象4.7.1类和对象的认识对象的认识对象是现实世界中某个具体的物理实体在计算机中的逻辑体现。在Unity中,能够在场景中显示的物体都是游戏对象。在“Hierarchy”面板中显示的都是游戏对象,游戏对象可以是显示的具体物体,也可以是一个不具备任何功能的空物体。4.7学习类与对象4.7.1类和对象的认识类的认识类是同种对象的集合与抽象,用来描述具有相同特征和行为的抽象。类的作用就是为了将世界中存在的物体进行分类。类是抽象的类型,对象是某类的具体实例。在编写脚本时,可能需要使用一些最常用和最重要的Unity内置类。4.7学习类与对象4.7.1类和对象的认识最常用和最重要的Unity内置类类名功能GameObject表示可以存在于场景中的对象的类型MonoBehaviour所有自定义脚本类的基类,默认情况下,所有Unity脚本都派生自该类ObjectUnity可以在编辑器中引用的所有对象的基类Transform提供多种方式来通过脚本处理游戏对象的位置、旋转和缩放,以及与父和子游戏对象的层级关系Vectors用于表达和操作2D、3D和4D点、线和方向的类Quaternion表示绝对或相对旋转的类,并提供创建和操作它们的方法ScriptableObject可用于保存大量数据的数据容器Time用于测量和控制时间,并管理项目的帧速率Mathf一组常见的数学函数,包括三角函数、对数函数以及游戏和应用开发中常用的其他函数Random提供简便的方法来生成各种常用类型的随机值Debug用于可视化编辑器中的信息,这些信息可以帮助您了解或调查项目运行时发生的情况Gizmos和Handles用于在Scene视图和Game视图绘制线条和形状以及交互式手柄和控件4.7学习类与对象4.7.2类的定义类的定义形式[访问修饰符]class类名{//类的主体}publicclassStudent{privatestringname;privatechargender;privatestringclass;publicvoidsetName(string_name){name=_name;}}4.7学习类与对象4.7.2类的定义类的访问修饰符修饰符功能public不限制对类的访问internal当前程序集中的代码都可以访问该类private该类只能被该类的成员访问protected只能被该类的成员或派生类成员访问abstract抽象类,该类含有抽象成员,不能被实例化,只能做基类sealed密封类,不能派生其他类,不能同时为抽象类4.7学习类与对象4.7.2类的定义构造函数[访问修饰符]类名([形参]){//构造函数的主体}构造函数是类的一种特殊方法,每次创建类的对象都会调用它。作用:对对象进行初始化4.7学习类与对象4.7.2类的定义字段把类中定义的变量称之为字段。字段是对象的

温馨提示

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

评论

0/150

提交评论