Unity c# 入门
Unity脚本
- Unity脚本开发是整个游戏开发过程中的重要环节,即使是最简单的游戏也需要脚本来实现响应用户的操作。
- 此外游戏场景中的事件触发、游戏对象的创建和销毁、游戏对象的运动行为,都需要通过脚本来控制。
Unity脚本基本概念
- 交互是游戏开发中必不可少的概念,它使玩家能根据自己的
意愿改变游戏场景中的某些元素与行为。
- 交互包括玩家通过输入系统与游戏场景进行互动,也包括游
戏场景中游戏对象之间的交互
- 开发者实现游戏交互功能的主要手段,实现交互的主要工具
就是脚本( Script)。
- 创建脚本:Project视图->鼠标右击->Create->C# Script
- 脚本是游戏资源
- 脚本绑定后是游戏对象组件
Console ( 控制台)视图
- Clear:点击将删除控制台当前所有信息。
- Collapse:按钮启用时,相同信息在控制台只显示一次
(消息的尾部显示它出现的次数)。
- Clear on Play:按钮启用时,每次游戏预览开始,Unity清除
控制台显示的所有消息。
- Error Pause:按钮启用时,游戏预览过程若脚本出现错误Unity中断本次游戏预览。
脚本生命周期
Unity 事件函数
Reset():脚本编辑阶段执行,脚本绑定到游戏对象上执行一次。
Awake():当脚本链接的游戏对象被激活时执行(无论该脚本组件是否启用)。
OnEnable():当该脚本启用时执行一次。
Start():当该脚本启用时进行检查。若场景中该Start()函数从未执行,OnEnable()函数执行后执行一次。否则,不执行Start()函数(即每个Start()函数在每个场景中只执行一次。)
FixedUpdate():每隔固定时间执行一次常用于物理模拟,如作用力的添加等。
OnTriggerXXX():每隔固定时刻检测一次包括OnTriggerEnter()、OnTriggerStay()、OnTriggerExit()函数
分别用于有物体进入、停留、离开Trigger(触发器)范围时执行。
OnMouseXXX():输入阶段,用于响应鼠标的输入事件。
Update(): 每帧执行一次,常用于游戏逻辑等相关行为的执行。
LateUpdate():每帧执行一次,在Update()函数后执行,举例:第三人称游戏的摄像机跟随,Update()中执行玩家角色移动LateUpdate()中执行摄像机跟随玩家,能防止摄像机的抖动现象。
OnGUI():每帧执行多次,绘制Unity的图形用户界面。
OnDisable():当该脚本禁用时执行一次。
当脚本启用时跳至OnEnable()函数执行阶段,并继续循环执行直至脚本禁用。
Unity脚本之间执行顺序
- 不同Unity脚本之间的默认执行顺序:以堆栈的方式(先进后出),先设置、后执行。
- Unity脚本的默认执行顺序:先绑定的脚本后执行。
- 使用MonoManager对脚本的执行顺序进行排序
- Edit菜单-> Project Setting -> Script Execution Order,优先级小的先执行。
- 未在MonoManager进行脚本设置,则脚本优先级默认为0 ( Default Time)。
- 对于优先级相等的脚本,则采用默认的“先设置,后执
行”执行方式。
- 优先级只表示脚本的执行顺序,并不表示脚本执行时间的延迟(即优先级=100不表示延迟100ms运行)。