Unity3D脚本概述

Unity脚本概述

与其他常用的平台有所不同,Unity中的脚本程序如果要起作用,主要途径为将脚本附加到特定的游戏对象上。这样脚本中不同的方法在特定的情况下会被调用,实现特定的功能。
在Unity脚本中,各事件函数的功能和大体的执行顺序如下:
1、Awake

   Awake用于脚本唤醒。此方法为系统执行的第一个方法,用于脚本
   的初始化,在脚本的生命周期中只执行一次。

2、Start

   Start方法在Awake之后执行,在脚本的生命周期中只执行一次。
   由于Awake和Start函数的特性与c#中的构造函数类似(一般情况
   下,在脚本的生命周期中只执行一次),所以在Unity中也常用来
   初始化类的成员变量。
   这个方法在游戏场景加载时被调用,在该方法内可以写一些游戏场
   景初始化之类的代码。

3、FixedUpdate

   FixedUpdate用于固定频率更新。这个方法会在固定的物理时间
   步调调用一次。这里也是基本物理行为代码执行的地方。
   通常情况下下,FixedUpdate()比Update()更频繁地调用。
   当帧率较低时,在某一帧的时间间隔内比Update可能会被调用多
   次;而当帧率很高时,在某一帧的时间间隔内FixedUpdate可能
   根本不会调用。
   还有一点,在Unity中,若设置Time Scale值为0,可以实现动
   力学特性的暂停,即所有的FixedUpdate中的代码都不会执行。

4、Update

    Update用于正常更新,即用于帧更新后同步场景状态。此方法每
    帧都会由系统自动调用一次。大部分的游戏代码在这里执行,除
    了物理部分的代码。
    在使用Update()时,对于一些变量,如速度、移动距离等通常需
    要乘以Time.deltaTime来抵消帧率带来的影响,使物体状态的
    改变看起来比较均匀正常。而在FixedUpdate中,由于其更新频
    率固定,所以不需要采用Time.deltaTime来修正状态改变频
    率。 

5、LateUpdate

    LateUpdate用于延迟更新,此方法在Update()之后执行,每
    一帧调用一次。

6、OnGUI

    OnGUI用来绘制用户交互界面,每一帧会调用多次。其中,与布
    局(Layout)和重汇(Repaint)相关的事件会被优先处理,然
    后是键盘事件和鼠标事件。

7、OnDestroy

    OnDestroy在当前脚本被销毁时调用。若在脚本中动态分配了内
    存,可以再OnDestroy()中进行释放。    

    同时,开发人员在有需要的情况下,还可以重写一些处理特定事
    件的回调方法,这类方法一般以On前缀开头,如
    OnCollisionEnter方法(此方法在系统检测到碰撞开始时回
    调)等。

Unity官方提供的事件顺序图:

这里写图片描述

   1、继承自MonoBehaviour类
         Unity中所有挂载到游戏对象上的脚本中的类必须继承
         MonoBehaviour类(直接的或者间接地),
         MonoBehaviour定义了各种回调方法,如Start、
         Update等。
   2、类名字必须匹配文件名
        C#的类名需要手动编写,而且类名必须和文件名相同,否则当脚本挂载到游戏对象时,在控制台会报错。
   3、使用Awake或Start方法初始化
        用于初始化脚本的代码必须置于Awake或Start方法中。两
        者不同之处在于Awake在加载场景时运行;Start方法是在
        第一次调用Update或FixedUpdate方法之前被调用;
        Awake运行在所有Start方法之前。
   4、Unity脚本中的协同程序有不同的语法规则
        (1)协程的返回值必须是Enumerator。
        (2)协程的参数不能加关键字ref或out。
        (3)在C#脚本中,必须通过StartCoroutine来启动协
        程。
        (4)yield语句要用yield return 来代替。
        (5)在函数Update和FixedUpdate中,不能使用yield
        语句,但可以启动协程。
    5、只有满足特定情况变量才能显示在属性查看器中
         只有序列化的成员才能显示在属性查看器中,如果属性想
         在属性查看器中显示,其必须是public类型的。
    6、尽量避免使用构造函数
         不要在构造函数中初始化任何变量,要用Awake或Start
         方法来实现。即便是在编辑模式,Unity会自动调用构造
         函数。
    7、调试
         Unity中C#代码的调试与传统的C#调试有所不同。Unity
         自带了完善的调试功能,在Unity中的控制台
         (Console)中包含了当前的全部错误,双击这个错误,
         可以自动跳转到默认的脚本编辑器中,然后光标会在错误
         所对应的行首跳动。

Unity中的坐标系

   一般情况下,在Unity中,x轴为红色的轴表示左右,y轴为绿色的
   轴表示上下,z轴为蓝色的轴表示前后。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值