栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

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

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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:UsersbaheniaoDesktop屏幕截图 2021-09-09 140145.png)]

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

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

P119

常用API Component组件类 transform GameObjet游戏对象
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号