Unity语法结构,生命周期,常用函数

语法结构

using 命名空间;
using UnityEngine;
using System.Collections;

/*注释:标明修改时间*/
public class 类名:MonoBehaviour
{
  void 方法名()
  {
  Debug.Log(“调试显示信息”)
  print(“本质就是Debug.Log方法”)
  }
}
```
```c#
private void Start()
{
   
}
%%0.02秒运行一次%%
private void Update()
{
   
}
public class Lifecycle:MonoBehaviour
{
    //脚本:.cs的文本文件 类文件
    //附加到游戏物体中,定义游戏对象行为指令的代码。 
    //c#类:
    //字段
    //属性
    //构造函数
    //方法
    //脚本:
    //字段
    //方法
        书写属性并不会显示在编译器,只有字段才会显示
    序列化字段:
    [SerializeField]私有变量显示在编译器
    public int a = 100;(初始化)
    [HideInspector]公开但不显示在编译器
    public int b;
    [Range(0,100)]设置取值范围
    public int c;
    不能在子线程中访问主线程成员
        不要在脚本中写构造函数
}
DeBug.Log();


脚本生命周期/必然事件/消息

在游戏各个阶段可以干什么事

消息:当满足某种条件Unity引擎自动调用的函数。

叫什么?

什么时候?

使用。

游戏初始阶段

Awake唤醒

this.enable=true

执行时机:创建游戏对象–>立即执行

初始化放在游戏初始阶段

作用:初始化

private void Awake()
{
    处在开始 执行一次 在Start前执行
}

补充:

Random.Range(1,101);Unity3D随机数生成
private int d;
private void Start()
{
    d=Random.Range(1,101);
}

充当构造函数的作用.

OnEnable当可用:

每当脚本对象启用时调用。

Start开始:

执行时机: 创建游戏对象–>脚本启用–>才执行

作用:初始化

private void Start()
{
    处在开始 在Awake后面 执行   一次
}

物体载入且脚本对象启用时被调用一次。常用语数据或游戏逻辑初始化,执行时机晚于Awake。

游戏物理阶段

FixedUpdate固定更新:

执行时机:每隔固定时间执行,默认0.02s (时间可修改)

适用性:适合对物体做物理操作(移动,旋转等),不会受到渲染影响

渲染时间不固定(每帧渲染量不同、机器性能不同),但是渲染不会对FixedUpdate造成影响。

private int FixedUpdate()
{
    
}

Update

private void Updage()
{
    执行时机:渲染帧执行,执行间隔不固定

    适用性:处理游戏逻辑
}

一般情况,为了代码简单,把游戏移动等物理操作也放在Updage里面

脚本启用后,固定时间被调用,适用于对游戏对象做物理操作,例如移动等;

OnCollisionXXX碰撞:

当满足碰撞条件时调用。

OnTriggerXXX触发:

当满足触发条件时调用。

输入事件

OnMouseEnter鼠标移入:

鼠标移入当前Collider时调用。

OnMouseOver鼠标经过:

鼠标经过当前Collider时调用。

OnMouseExit 鼠标离开:

鼠标离开当前Collider时调用。

OnMouseDown鼠标按下:

private void  OnMouseDown()
{
    鼠标按下当前Collider时调用。
}

OnMouseUp鼠标抬起:

鼠标在当前Collider上抬起时调用。

游戏逻辑

Update更新:

private void Updage()
{
    执行时机:渲染帧执行,执行间隔不固定

    适用性:处理游戏逻辑
}

脚本启用后,每次渲染场景时调用,频率与设备性能及渲染量有关。

LateUpdate延迟更新:

适用性:同帧先后,在Update后面执行

在Update函数被调用后执行,适用于跟随逻辑。

场景渲染

OnBecameVisible当可见:

当Mesh Renderer在任何相机上可见时调用。

OnbecameInvisible当不可见:

当Mesh Renderer 在任何相机上都不可见时调用。

结束阶段

OnDisable当不可用:

对象变为不可用或附属游戏对象非激活状态时次函数被调用。

OnDestroy当销毁:

当脚本销毁或附属的游戏对象被销毁时被调用。

OnApplicationQuit 当程序结束:

应用程序退出时被调用。

调试

1.将程序投入到实际运行中,通过开发工具进行测试,修正逻辑错误的过程。

1.控制台调试;

Debug.Log(变量);

print(变量);

2.定义共有变量,程序运行后在检测面板查看数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lJPGe2GF-1646554174446)(C:\Users\baheniao\Desktop\屏幕截图 2021-09-09 140145.png)]

Debug.Log(变量);和print(变量);的区别

单帧调试:启动调试 运行场景 暂停游戏 加断点 单帧执行 结束调试

P119

常用API

Component组件类

transform

GameObjet游戏对象

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值