欢迎大家指正学习
目录
一、脚本生命周期
1.脚本基础
脚本:.cs的文本文件 类文件
说明: 附加到游戏物体中,定义游戏对象行为指令的代码
书写习惯:
//c#类:
//字段
//属性
//构造函数
//方法
* 脚本:
* 字段
* 方法
* 不写属性的原因是写了也显示不出来
*/
public int a;//公开的字段会显示在unity编辑器里,unity编辑器修改优先于代码字段
//因为private字段不能被编辑器捕获到,并且还要看到字段,我们可以使用[序列化字段
1 . 序列化字段
//序列化字段 作用:在编辑器中显示私有变量
[SerializeField]
private float b = 100;
2.隐藏字段
//作用:在编辑器中隐藏字段
[HideInInspector]
public int c = 100;
ps:因为隐藏了,所以在 编辑器里不显示
3.范围字段
//作用:定一个范围
[Range(0, 100)]
public int d ;
//属性:在编辑器中不能显示,通常脚本中不写
ps:在编辑器中数值可以拖动改变
二、脚本生命周期
1.初始阶段
1. Awake
执行时机:创建游戏对象 立即执行1次(早于Start)
作用:初始化
private void Awake()
{
//Debug.Log("Awake--"+Time.time+"--"+this.name);
/*
* 当物体载入时立即被调用1次;常用于在游戏开始前进行初始化,可以判断当满足
* 某种条件执行此脚本this.enable=true
*/
}
ps:Awake先Start后
如果需求没有先后顺序创建对象放Start里
OnEnable 当可用
每当脚本对象启用时调用,只要脚本一启用这个方法就会被调用
2. Start
private void Start()
{
int a = 1;
int b = 2;
int c = a + b;
\
Debug.Log("Start--" + Time.time+"--"+this.name);
}
作用:
/*
* 物体载入且脚本对象启用时被调用一次,常用于数据 或游戏逻辑初始化,执行时机
* 晚于Awake
*/
2.物理阶段
1.FixedUpdate
//执行时机:每隔固定时间执行一次。(时间可以修改)
//适用性:适合对物体做物理操作(移动、旋转.......)
private void FixedUpdate()//固定更新 0.02s
{
Debug.Log(Time.time);
}
ps: /渲染时间不固定(每帧渲染物体量不同、机器性能不同)
/*
* 脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,例如:移动
*/
2.其他
* 输入事件
* OnMouseEnter 鼠标移入:
* 鼠标移入到当前Collider(碰撞器) 时调用
*
* OnMouse等等还有很多,在手册里会有说明下方赋手册链接
3.场景渲染
/*
* OnBecameVisible 当可见:
* 当Mesh Rendered在任何相机上可见时调用
* OnBecameInvisible当不可见:
* Mesh Renderer在任何相机上都不可见时调用
*/
4.结束阶段
/*
* OnDisable 当不可用:
* 对象变为不可用或附属游戏对象非激活状态时此函数被调用
* OnDestroy 当销毁:
* 当脚本销毁或附属的游戏对象被销毁时被调用
* OnApplicationQuit 当程序结束:
* 应用程序退出时被调用
*/
5.执行顺序
Reset->Awake->OnEnable->Start
三.Unity3dAPI中文手册链接
链接:https://pan.baidu.com/s/14gLmTVIyoCv0SzRnQNRE0A
提取码:1234
--来自百度网盘超级会员V3的分享
总结
这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了脚本操作基础和脚本生命周期