zoukankan      html  css  js  c++  java
  • 关于Unity的游戏的运行模式

    游戏有个入口main函数,执行完main函数就返回

    main函数中的步骤

    1.初始化

    2.while(true){

      a.检查有没有消息,包括鼠标有没有被点击,键盘有没有被点击,自定义事件等等,有消息就处理

      b.绘制游戏场景

      c.看看时间是不是还没有到(0.016秒),如果没有到,就稍稍地休息一会儿(Sleep),如果a和b只用了0.01秒,那么休息0.006秒,维持帧频在60上下,不大大地超过或低于

            如果cpu很低端,1秒最多只能绘制30次,那么游戏运行的时候就不会有休眠的时间,而且cpu是作死地去绘制,为游戏换取更大的流程程度,手机会很烫,游戏会一卡一卡地。

        但是卡归卡,游戏角色的移动还是从A到B点,可能本来A到B点是有5个画面的,现在因为cpu比较差,只能绘制3个画面,所以看起来比较卡,但是结果还是移动到了B点。

    }循环

    帧频  

    while循环,1秒钟可以循环多少次,比如我的电脑,cpu好一点,1秒钟可以绘制80次(80FPS/S),研究表明!秒钟60次(60FPS/S)人就感觉非常流畅了,再往上人眼识别不出区别,反而会消耗CPU,手机可能很快就没电了,用户体验就不好了。

    所以60FPS/S,一帧的时间,也就是一次循环的时间,为1/60=0.016秒,也就是一次while循环中a和b的时间要小于等于0.016秒。

    2.5G的cpu,1秒钟可以做2.5*1024*1024*1024次加法。

    Unity是组件化的开发模式

    1.当组件被挂载到节点上的时候,执行组件自己的Awake()函数

    2.当被挂载组件的节点第一次刷新之前(执行节点While循环的a之前或者还没进入while循环),节点下的每个组件调用自己的Start()函数

    3.当被挂载组件的节点在处理绘制场景的时候(执行节点While循环的b),节点下的每个组件调用自己的Update()函数

    可以知道,节点有个大的while循环,而这个大循环调用的是每个组件的Awake,Start,Update函数的

    while循环把组件的几个入口接入了进来

    1.Awake:组件实例加载的时候调用,初始化可以在这里写,看习惯

    2.Start:组件实例在第一次Update或者FixedUpdate之前调用,初始化可以在这里写,看习惯

    3.Update:游戏刷新的时候调用,帧频不是固定的

    4.FixedUpdate:物理引擎每次固定刷新的时候调用,与帧频无关,主要是用于物理计算

    5.OnGUI:绘制2D元素入口的时候调用,例如玩家的昵称,血条,draw出GUI元素

    组件是在12345入口下开发出来的模块,实际上我们是在已经写好的Unity工具的基础上,我们为这个工具根据它的逻辑,来开发我们的模块,模块的入口就是12345,我们都是给Unity写代码,实际上是在写代码模块,模块又叫做组件,入口又叫做接口。

    每个组件类都继承于MonoBehaviour这个基类,它是Unity为我们提供的父类,我们自己写的组件类都要继承于这个类,是组件的基本规则,我们要扩展Unity,就要遵守它的规则,组件类的名字要和脚本名字一样。

    正是因为我们自己写的组件类继承了MonoBehaviour,所以Unity的底层大While循环才调的到12345接口,而我们在1234中写自己的逻辑,就相当于我们扩展了Unity的游戏部分。

    挂在节点上的其实是组件实例,组件类只是一个定义,猫类,狗类,但是挂在节点上的是具体的什么猫什么狗。

    一个脚本中其实也可以定义多个class,但是规范是一个脚本对应一个组件类。

    一个节点中其实也可以挂载多个相同的脚本,不会冲突,这些脚本只是组件类实例出来的组件实例而已,不是类。

  • 相关阅读:
    ES6常用语法
    nodejs中exports与module.exports的区别
    CSS animation动画
    CSS user-select文本是否可复制
    VUE 滚动插件(better-scroll)
    VUE 父组件与子组件交互
    CSS div内文字显示两行,超出部分省略号显示
    linux下使用tar命令
    linux fdisk命令使用
    关于SUID、SGID、Sticky
  • 原文地址:https://www.cnblogs.com/HangZhe/p/6748097.html
Copyright © 2011-2022 走看看