Onable()
游戏物体激活时调用或组件被激活调用
多次 作用对象池复活
Awake()
调用一次即初始化的时候调用,之后不再调用。
Onable()
游戏物体激活时调用或组件被激活调用
多次 作用对象池复活
Awake()
调用一次即初始化的时候调用,之后不再调用。
Start()
调用 同OnEable()但是只会调用一次
时间 Update方法之前,Awake()方法之后调用
作用实例化被Awake()方法加载的UI物体。
1.activeInHierarchy:成员变量,游戏物体的激活或失活状态
2.activeSelf:成员变量,游戏物体的激活或失活状态
3.通过名称查找
GameObject mainCameraGo = GameObject.Find(“Main Camera”);
外部对变量赋值顺序
Awake>OnEnable>外部赋值>Start
1.
OnDisable()方法
调用情况:游戏物体被销毁 组件被禁用时调用
时间:调用一次,每次被销毁都会调用一次
作用:资源回收和清理,状态重置
1.通过标签查找
GameObject.FindGameObject WithTag(“MainCamera”);
2.通过类型查找
No2_EventFunction no2_EventFunction= GameObject.FindObjectOfType<No2_EventFunction>();
1.GameObject[] enemyGos=GameObject.FindGameObjectsWithTag(“ Enemy”);
2.BoxCollider[] colliders=GameObject.、findObjectOfType<BoxCollider>();
public GameObject grisGo;
使用构造函数创建游戏对象
GameObject myGo=new GameObject("MyGameObject");
根据现有的游戏对象资源或场景已有的游戏实体实例化(克隆)
GmaeObject.Instantiate(grisGo);
使用特别的API 创建基本的游戏类型
GameObject.CreatePrimitive(PrimitiveType.plane);
游戏物体的查找和获取
this.geiasGo;
this.gameobject;
print(Time.deltaTime + ",完成上一帧所用的时间(以秒为单位)");
print(Time.fixedDeltaTime + ",执行物理或者其他固定帧率更新的时间间隔");
print(Time.fixedTime + ",自游戏启动以来的总时间(以物理或者其他固定帧率更新的时间间隔累计计算的)");
在11.Time里面
MonoBehaviour
1. enabled:成员变量,组件激活状态
2.name:成员变量,组件挂载的对象名称
3.tag:成员变量,组件挂载的标签名称
4.isActiveAndEnabled:成员变量,组件是否已激活并启用Behaviour
修改位置的方法
transform.position=new Vector(3,3);
Vector2 vector=transform.position;
vector.x=4;
transform.position=vector;
Awark
OnEnable(每次激活都会被调用 )
Awake(首次激活被调用)
1.在加载场景时初始化包含脚本的激活状态的Gameject时
2,GameObject从非激活状态变为激活状态
3,在初始化使用Instantiate创建的GameObject之后
2.调用时间次数与作用
在脚本的生存期内,unity仅调用Awake一次。脚本的生存期持续到包含
使用Debug.Log可以用于检测脚本错误,也就是我们玩游戏c说的bug
OnEnable
1,调用情况
a,游戏物体被激活
b,脚本组件被激活
2,调用时间,次数与作用
每次游戏物体或脚本被激活都会调用一次
重复赋值,变为初始状态
Start:
1,调用情况
a,游戏物体被激活
b,脚本组件被激活
Start
1,调用情况
a.游戏物体被激活
b,脚本组件被激活
2,调用时间,次数作用
在脚本实例化激活是在第一帧的Update之前被调用
后于Awake执行,方便控制逻辑的前后调用顺序
GameObject.CreatePrimitive(PriminitiveType.Plane);
事件函数(生命周期函数)
第一个函数Reset命令
调用时间和次数及作用:当把Reset脚本第一次挂载到一个对象身上再或者是使用了Reset命令之后,会调用一次Reset方法同时初始化所有值。