SIKI学院事件函数,Time,游戏物体笔记

一 学习需要的基础:

1需要一定的unity基础。
2不要死记硬背,多练常用的,加深印象。
3学习目标:巩固unity知识

二 如何查看unity的API文档:

Help里Scripting Reference是API文档(经常用到):介绍各种类
Unity Manual是Manual手册:教程式手册,具备各个功能,例如Audio,UI,Animation,Navigation,Unity2D等等

三 事件函数:

如何查看所有的事件函数:
Manual-Scripting-Scripting Overview-Execution Order of Event Functions
在这里插入图片描述
在这里插入图片描述
1创建一个新场景,命名为MainScene
2创建一个游戏物体,新建脚本API01,用来测试事件方法
Start函数只执行一次,Update可以重复执行
Reset函数:初始化

四 事件函数的执行和先后顺序:

FixedUpdate:每秒调用固定次数
OnTinggerXXX和OnCollisionXXX:触发碰撞器
OnMouseXXX:输入事件
新建API09OnMouseEventFunction脚本在这里插入图片描述

OnMouseDown:鼠标按下会执行一次OnMouseUp:鼠标抬起会执行一次
OnMouseDrag:鼠标拖拽会执行OnMouseEnter:移上会执行一次
OnMouseExit:移出会执行一次OnMouseOver:每帧都会执行一次

前三个和鼠标抬不抬起无关 后三个和鼠标抬起拖拽有关
OnMouseUpAsButton:同一个物体才会触发
OnDestory:销毁

五 Time :Scripting API里搜素Time

在这里插入图片描述
captureFramerate:设置帧的速率,可以屏幕截图
deltaTime:代表当前帧所占用的时间,和实际的组件有关系
在这里插入图片描述
在这里插入图片描述
fixeddeltaTime:固定的每一帧所占用的时间。可以通过Edit-Project Settings-Time-Fixed Timestep查看
smoothdeltaTime:平缓的变化,和deltaTime有关系
realtimeSinceStartup:游戏从开始到现在所占用的时间,暂停的时候会一直增加,不受暂停的影响。
timeSinceLeveLoad:以一个场景到另一个场景为单位
fixedTime/Time:以游戏从开始和结束为单位
frameCount:从游戏到暂停运行的帧数
timeScale:对所有的DeltaTime可以实现加速,减速和暂停播放
例如Time.timeScale=3f;加速
Edit-Project Settings-Time
新建API02Time脚本,并运行
在这里插入图片描述
在这里插入图片描述
realTimeSinceStartup的使用
测试性能快慢:例如乘法和加法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
运行结果可得乘法比加法性能慢

六 游戏物体

1)创建游戏物体的三种方法:
Instantiate 实例化特效,游戏角色等等
CreatePrimitive 创建一些基本图形,例如Plane Cube等等
创建脚本API03,编辑代码并运行
在这里插入图片描述
通过代码给游戏物体添加组件
在这里插入图片描述
禁用和启用一个游戏物体
activeSelf:表示自身是否处于激活状态
如果父物体被禁用,子物体如果没有被禁用,则activeSelf为true
activeInHierarchy(常用):表示某个物体是否处于激活状态
父物体如果被禁用,子物体也无法运行
Tag(标签):区分场景中的某个游戏物体
在这里插入图片描述
2)GameObject,Component,Object
关系:
在这里插入图片描述
在这里插入图片描述
1>UnityEngine下Object拥有的静态方法:
Destroy销毁 既可以销毁组件,也可以销毁游戏物体。还可以设置时间。
Destroylmmediate立即销毁(不建议用)
DontDestroyOnLoad 切换场景时也会存在,用来设置共享的游戏物体
FindObjectOfType根据组件类型查找组件,只找第一个
FindObjectsOfType 所有的
Instantiate实例化
2>GameObject独有的静态方法:
CreatePremitive
Find:根据名字查找游戏物体,比较耗费性能,尽量不要在Update里查找
FindGameObjectsWithTag:根据标签查找场景中的所有的带有这种标签的游戏物体
FindWithTag:根据标签查找场景中的第一个的带有这种标签的游戏物体
3>GameObject的公共方法:
AddComponent SetActivve CompareTag
Message:
BroadcasMessage广播消息,可以减少游戏物体之间的耦合性
新建API04Message
在这里插入图片描述
在这里插入图片描述
SendMessage 会针对某一个物体身上的所有的脚本方法会被调用
在这里插入图片描述
SendMessageUpwards:针对当前物体以及其所有的父物体
在这里插入图片描述
GetComponent 得到游戏物体的第一个组件
GetComponens 得到游戏物体的所有组件
GetComponentinChildren 当前的游戏物体以及子物体的第一个组件
GetComponentsinChildren 当前的游戏物体以及子物体的所有组件
GetComponeninParent 当前的游戏物体以及所有的父物体的第一个组件
GetComponensinParent 当前的游戏物体以及所有的父物体的所有组件
在这里插入图片描述
在这里插入图片描述
4>MonoBehaviour:
在这里插入图片描述
变量:runEditMode-ExecuteInEditMode实现在编辑模式下也可以运行的功能
Invoke调用某个方法 可以设置调用时间(定时器)
InvokeRepeating重复调用某个方法
CancelInvoke取消调用某个方法 只会取消当前脚本的方法
新建API06MonoBehaviour脚本并运行
在这里插入图片描述
注意:Debug可以在任意地方使用,print只能在MonoBehaviour下使用,因为其属于MonoBehaviour的静态方法
IsInvoking判断某个方法是否被调用
新建API07Invoke脚本
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值