- gameObject是继承在Object上的,所以他们(GameObject和Component)是有一些共同的属性。比如:
name(可获取到对应游戏物体的名字或者组件所添加到的游戏物体的名字)
Destroy(销毁)、(通过类名进行调用)(可销毁某游戏物体或某个组件)(可控制多久后进行销毁)
DestroyImmediate(立刻销毁)、(尽量使用Destroy)
DontDestroyOnLoad(a场景跳转到b场景时,a场景指定物体不销毁,可用来设置共享物体)
FindObjectOfType(从全局根据类型查找游戏物体或组件)(返回一个值)(直接写进行调用,不能使用方法进行调用)
FindObjectsOfType(从全局根据类型查找游戏物体或组件)(返回一个数组)
Instantiate(实例化物体)
① Message类型(调用某个方法,将方法名传递过去)
BroadcastMessage(广播消息)(对当前物体包括子物体进行广播)(减少游戏物体之间的耦合性)
使用方法:
定义一个公有变量(用来接受消息)
在Start中 方法名.BroadcastMessage(“方法”);
在另外一个游戏物体上定义一个方法(被调用的方法)
SendMessage(发送消息)(只针对当前物体发送,不对其子物体发送)
SendMessageUpwards(向上发送)(对当前物体以及它的父物体)
② Component类型
GetComponent(得到当前游戏物体某个组件)(如有多个将会得到第一个)
GetComponents(得到多个组件)
GetComponentInParent(从当前物体及所有父物体得到某个组件)
GetComponentsInParent
GetComponentInChildren(从当前物体及所有子物体得到某个组件)
GetComponentsInChildren
- GameObject独有的变量和方法:
activeInHierarchy
activeSelf
layer(获取游戏物体所在层)
scene(获取游戏物体所在场景)
tag(获取游戏物体所带标签)
(1)静态方法:
可通过类名进行调用
CreatePrimitive
Find(根据名字进行查找)(通过遍历实行,耗费性能)
FindGameObjectsWithTag(根据标签进行查找所有的)(传递数组)
FindWithTag(根据标签进行查找单个)(传递第一个数值)
(2)公有方法(针对某个游戏物体):
通过对象进行调用
AddComponent(添加组件)
CompareTag(判断两标签是否一样)
SetActive(选择是否禁用游戏物体,值为ture或false)
- Component独有的变量和方法:
MonoBehaviour中常用的:
print:输出
isActiveAndEnabled:判断组件是否激活
enable:设置是否激活(值为ture或false)
tag:通过组件获取的标签
GameObject:通过组件获得当前的游戏物体
Transform:通过组件获得当前游戏物体的Transform组件
Name: 通过组件获得当前的游戏物体的名字
Invoke
使用方法: 在Start中 Invoke(“方法名”,间隔时间);
IsInvokeing:判断方法是否正在被调用
CancelInvoke:取消调用方法,如果不指定参数,将会取消所有Invokeing方法
InvokeRepeating
使用方法:在Start中 InvokeRepeating(“方法名”,数值1,数值2)
解释:数值1秒后,开始调用指定方法。之后每隔数值2秒后,就会调用一次方法。
- 一般方法执行过程
从上到下执行,遇到某个方法时,执行方法,完成后继续向下执行
协程方法执行过程(具体哪个先执行,以CPU分配为准) - 从上到下执行,遇到某个方法时,不会等方法执行结束。协同程序,共同执行
- 自身可进行暂停
1的使用方法:
返回值:IEnumerator
设置返回参数时候用yield return
在Start中:StartCoroutine(方法名());
2(暂停)使用方法:
在协程处理函数中加 yield return new WaitForSeconds(3);
解释:等3秒后再运行。
StartCoroutine:开启协程
StopCoroutine:关闭协程
两个是对应的,开启协程时,用的是方法,关闭时候也需要用方法进行关闭。