Unity-3D增强现实开发-第6章-脚本语言开发基础课件

上传人:汽*** 文档编号:568330532 上传时间:2024-07-24 格式:PPT 页数:20 大小:787KB
返回 下载 相关 举报
Unity-3D增强现实开发-第6章-脚本语言开发基础课件_第1页
第1页 / 共20页
Unity-3D增强现实开发-第6章-脚本语言开发基础课件_第2页
第2页 / 共20页
Unity-3D增强现实开发-第6章-脚本语言开发基础课件_第3页
第3页 / 共20页
Unity-3D增强现实开发-第6章-脚本语言开发基础课件_第4页
第4页 / 共20页
Unity-3D增强现实开发-第6章-脚本语言开发基础课件_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Unity-3D增强现实开发-第6章-脚本语言开发基础课件》由会员分享,可在线阅读,更多相关《Unity-3D增强现实开发-第6章-脚本语言开发基础课件(20页珍藏版)》请在金锄头文库上搜索。

1、知识目标知识目标能力目标能力目标任务引入任务引入第第6 6章章 脚本语言开发基础脚本语言开发基础Wednesday, July 24, 2024第1页知识目标知识目标了解了解 Unity Unity 脚本的生命周期脚本的生命周期了解了解 Unity Unity 脚本与游戏对象和组件的交互方法脚本与游戏对象和组件的交互方法了解了解 Unity Unity 中的常用类中的常用类Wednesday, July 24, 2024第2页能力目标能力目标掌握基本的脚本编程方法掌握基本的脚本编程方法掌握游戏对象操作和相关类应用掌握游戏对象操作和相关类应用掌握掌握 Time Time 类应用类应用Wednes

2、day, July 24, 2024第3页任务引入任务引入脚本也是 Unity3D 的一种组件;脚本编程可以控制模型对象的生命周期循环;脚本开发是增强现实应用开发的核心部分之一。Wednesday, July 24, 2024第4页6.1 认识脚本开发认识脚本开发 脚本是一个游戏的灵魂,有了脚本程序,游戏才变得有可玩性;脚本的任务有处理输入、操作各个 Game Object、维护状态和管理逻辑等;在 Unity3D 中,有两种编程语言,分别是 C#和 JavaScript,C#在 Unity3D 开发的游戏中的使用比例超过了 80%。Wednesday, July 24, 2024第5页选中

3、Scripts 文件夹,在其中右键,选择 Create - C# Script。图 6-1 创建一个 Scripts 文件夹并在其中新建一个 C#脚本Wednesday, July 24, 2024第6页双击脚本,默认打开 Unity 的 MonoDevelop 编辑器。可以看到有一个继承自MonoBehaviour 类的NewBehuaviourScript 类,这个类名和脚本的名字是一样的。文件名和类名必须保持一致,所以如果修改了脚本的文件名就要同步修改类名。Start 函数中的内容将会在一开始就被执行,所以一些需要初始化的变量都可以写在 Start 函数内;Update 函数,在运行的每

4、一帧都会调用,可以理解为这个函数无时无刻不在调用。Wednesday, July 24, 2024第7页6.2 Unity 脚本的生命周期脚本的生命周期 Start 和 Update 函数都叫做生命周期函数。脚本的生命周期分为多个阶段,在各个阶段中有各自的事件函数。(1) 阶段一:编辑Reset:当脚本第一次依附在 Game Object 上或使用了 Reset 命令时调用,用来初始化脚本的属性。(2) 阶段二:第一场景加载Awake:在任何 Start 函数之前调用,也是在 prefab 被实例化之后调用的。OnEnable:此对象启用后才调用此函数。OnLevelWasLoaded:执行该

5、功能以通知游戏已经加载了一个新的级别。Wednesday, July 24, 2024第8页 Unity 脚本的生命周期脚本的生命周期 (3) 阶段三:在第 1 帧更新之前Start:仅在脚本实例启用后才在第 1 帧更新前调用启动。(4) 阶段四:帧之间OnApplicationPause:在正常的帧更新之间检测到暂停的帧的末尾被调用。(5) 阶段五:更新FixedUpdate:FixedUpdate 通常比 Update 更频繁地被调用。Update:每帧调用一次更新。它是帧更新的主要功能。LateUpdate:Update 更新完成后,每帧调用 LateUpdate 一次。Wednesda

6、y, July 24, 2024第9页 Unity 脚本的生命周期脚本的生命周期 (6) 阶段六:渲染OnPreCull:在相机剔除场景之前调用,剔除哪些对象对于相机是可见的。OnBecameVisible / OnBecameInvisible:当对象对于任何相机变为可见/不可见时调用。OnWillRenderObject:如果对象可见,则为每个摄像机调用一次。OnPreRender:在相机开始呈现场景之前调用。OnRenderObject:在所有常规场景渲染完成后调用。OnPostRender:在相机完成渲染场景后调用。OnRenderImage:场景渲染完成后允许屏幕图像后期处理调用。O

7、nGUI:每帧调用多次以响应 GUI 事件。首先处理布局和重绘事件,然后处理每个输入事件的布局和键盘/鼠标事件。OnDrawGizmos:用于在场景视图中绘制 Gizmos 以进行可视化。Wednesday, July 24, 2024第10页Unity 脚本的生命周期脚本的生命周期 (7) 阶段七:协同程序yield:在下一帧调用所有更新功能后,协调程序继续。yield WaitForSeconds:在指定的时间延迟之后,在为帧调用所有更新功能之后继续。yield WaitForFixedUpdate:在所有脚本上调用了所有 FixedUpdate 之后继续。yield WWW:在一个 WW

8、W 下载完成后继续。yield StartCoroutine:链接协同程序,并等待 MyFunc 协同程序首先完成。(8) 阶段八:对象毁灭OnDestroy:在对象存在的最后一帧的所有帧更新之后调用此函数。(9) 阶段九:退出OnApplicationQuit:在应用程序退出之前,所有游戏对象都调用此函数。在编辑器中,当用户停止播放模式时被调用。OnDisable:当该行为被禁用或不活动时,调用此函数。Wednesday, July 24, 2024第11页6.3 访问游戏对象和组件访问游戏对象和组件 脚本需要挂载在 Game Object 上运行,例如在 Update 函数中添加以下代码。

9、这两行代码用来检测鼠标左键是否按下,如果鼠标左键按下就会在控制台输出“Pressed left click”。代码编辑完成以后按下 Ctrl+S 保存代码,将窗口切换回Unity3D 编辑器,可以看到窗口右下角有一个“风火轮”在旋转,这个图标代表代码正在进行编译,需要等待代码编译完才能开始播放模式。Wednesday, July 24, 2024第12页打开 Console(控制台)面板来调试代码。代码编译完之后如果控制台没有提示错误就可以单击播放按钮开始调试。 新建一个 Cube,并且把脚本拖动至 Cube 的 Inspector 上。图 6-2 将编辑好的脚本挂载在一个对象上Wednesd

10、ay, July 24, 2024第13页再次进入播放模式,鼠标左键单击 Game 视图的任意位置,控制台就会输出信息。单击 Console 视图中的 Clear 按钮可以清空控制台消息。图 6-3 控制台的输出Wednesday, July 24, 2024第14页脚本一个重要的功能就是操作 Game Object,操作 Game Object 需要先获取到要操作的 Game Object。获取游戏对象的第一种方法就是使用 gameObject 对象。GameObject 与 gameObject 不同,前者表示游戏对象类,后者表示当前脚本所挂载的游戏对象,如在一个 Cube 下挂载以下代码

11、。这行代码执行以后,给 Cube 添加了一个球形碰撞器。图 6-4 通过脚本添加一个球形碰撞器Wednesday, July 24, 2024第15页如果想要获取其他对象而不是脚本挂载的对象,可以通过 GameObject.Find方法来获取。输出结果如下图 。图 6-5 控制台输出和这个方法类似的还有 GameObject.FindWithTagGameObject.FindGameObjectWithTag,GameObject.FindGameObjectsWithTag 方法,这些方法都是根据 tag 来寻找对象的。Wednesday, July 24, 2024第16页要查看对象/类

12、所有的成员变量和方法,可以通过 Scripting Reference(脚本手册)查看,位于 Help - Scripting Reference。图 6-6 使用 Scripting Reference 获取编程帮助Wednesday, July 24, 2024第17页还有一种通过声明共有变量的方法来获取内容,如:可以看到在 Inspector 面板中有声明的变量,数组可以自定义长度。在 Inspector 面板中拖入值,脚本中的变量就能访问对应的变量。图 6-7 脚本中定义的 Public 变量可以在属性面板中编辑Wednesday, July 24, 2024第18页6.4 Time 类简介类简介 Time 类是获取 Unity 内时间信息的接口;Time.DeltaTime 表示完成上一帧所需要的时间;Time.time 代表从游戏开始到当前所经过的时间;Time.timeSinceLevelLoad 表示从当前场景加载完成到目前为止的时间;Time 类有近 20 个变量,详细内容可以查看 Scripting Reference(脚本手册)。Wednesday, July 24, 2024第19页 本章小结本章小结 Wednesday, July 24, 2024第20页

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号