Unity API 事件函数、Time类、创建游戏物体

事件函数

事件函数的作用是在特定事件发生时调用特定的C#代码,从而得到自己想要的效果。
主要的事件处理函数:
Awake:当场景运行起来的时候Awake就会被调用
OnEnable:场景启用的时候OnEnable会被调用
OnDisable:物体或组件未被启用时
Start:场景启用的时候Start会被调用。
FixedUpdate:每秒会调用固定次数。
Update:每帧调用一次
LateUpdate:每帧调用一次,在Update调用之后调用。
OnTrigger:调用触发器
OnCllider:调用碰撞器
yieldWaitForFixedUpdate
OnMouse xxx:与鼠标有关的一些事件
OnDrawGizmos:与线模型有关的一些事件
OnApplicationPause:点击暂停键时调用
OnApplicationQuit:退出游戏时调用
OnDestroy:退出游戏或销毁物体时调用
测试如下:
在这里插入图片描述

在这里插入图片描述

Time类

Static Variable 静态变量
captureFramerate:通过设置帧的速率进行屏幕截图,让屏幕截图在当前帧可以完成。
deltaTime:当前帧所占用的时间(有波动)
fixedDeltaTime:每桢所占用的时间(固定值)
fixedTime:从游戏运行所占用的时间
Time:游戏运行所占用的时间
timeSinceLevelLoad:场景加载完成之后到现在所占用的时间
realtimeSinceStartUp:从游戏开始到现在所占用的时间
smoothDeltaTime:以一个平滑的时间间隔进行变化
frameCount:帧数
timeScale:时间比例(可以让游戏暂停或者加速播放,默认为1)
测试如下:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

GameObject

创建GameObject三种方法:
第一种创建方法
GameObject go = new GameObject(“Cube”);
第二种创建方法
GameObject.Instantiate(prefab);//可以根据prefab或者另外一个游戏物体进行克隆
第三种创建方法 原始的几何体
GameObject.CreatePrimitive(PrimitiveType.Cube);

给游戏物体通过代码添加组件
利用AddComponent添加组件或脚本等
go.AddComponent();
go.AddComponent();

禁用或启用一个游戏物体
activeInHierarchy:判断物体是否处于激活状态(父物体被禁用时为false)
activeSelf:判断物体是否处于激活状态(父物体被禁用时为true)

tag:可以区分不同的物体

GameObject、ComPonent和Object的关系
在这里插入图片描述
GameObject继承自Object,那么Object有哪些共有的东西呢?
Static Function 静态方法
Destroy:销毁游戏物体或某个组件(可设置多长时间后销毁)
DestroyImmediate:立刻销毁游戏物体(可能会导致空指针)
DontDestroyOnLoad:切换下一个场景时原场景里面的游戏物体保留
FindObjectOfType:根据游戏物体的类型返回(只返回第一个)
FindObjectsOfType:根据游戏物体的类型返回(返回所有符合类型的组件)
测试如下:
在这里插入图片描述
在这里插入图片描述
Instantiate:实例化物体
这些是GameObject和Object共有的一些静态方法。

GameObject有些独有的静态方法呢?
CreatePrimitive:创建一个几何体
Find:根据名字查找游戏物体(比较耗费性能)
FindGameObjectsWithTag:根据标签查找场景当中所有的物体(返回值是一个数组)
FindWithTag:根据标签查找场景当中的游戏物体(如果有多个,只会返回第一个)
测试代码如下:
在这里插入图片描述
在GameObject里有哪些方法是通过对象进行调用的
(1) Addcomponent:添加组件,必须有一个游戏物体去调用它
(2) CompareTag:比较标签
(3) Setactive:激活或禁用游戏物体
(4) BroadcastMessage:广播消息(对象身上所有的子物体如果有该方法名也会被调用)
(5) SendMessage:发送消息(只会针对目标,在目标身上调用)
(6) SendMessageUpwards:向上发送(包括他的父亲爷爷等)
测试代码如下:

//target.BroadcastMessage("Attack", null, SendMessageOptions.DontRequireReceiver);
//target.SendMessage("Attack", null, SendMessageOptions.DontRequireReceiver);
//target.SendMessageUpwards("Attack", null, SendMessageOptions.DontRequireReceiver);

(7) GetComponent:用来得到这个游戏物体身上的某个组件,若有多个,只得到第一个
(8) GetComponents:用来得到这个游戏物体身上的某个组件,若有多个,得到所有
(9) GetComponentInChildren:用来得到这个游戏物体及其所有孩子身上的某个组件,若有多个,只得到第一个
(10) GetComponentsInChildren:用来得到这个游戏物体及其所有孩子身上的某个组件,若有多个,得到所有
(11) GetComponentInParent:用来得到这个游戏物体及其所有父亲身上的某个组件,若有多个,只得到第一个
(12) GetComponentsInParent:用来得到这个游戏物体及其所有父亲身上的某个组件,若有多个,得到所有
测试如下:

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值