Laya3.0游戏框架搭建流程(随时更新)

这篇具有很好参考价值的文章主要介绍了Laya3.0游戏框架搭建流程(随时更新)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  近两年AI绘图技术有了长足发展,准备把以前玩过的游戏类型重制下,也算是圆了一个情怀梦。

  鉴于unity商用水印和启动时间的原因,我决定使用Laya来开发。目前laya已经更新到了3.0以上版本,就用目前比较新的版本。

  之后关于开发中遇到的一些小问题,我都会记录到这篇博客中。毕竟只是个人项目,所以按照帖子的方式更新。

1,Laya的生命周期

  这个没什么说的,了解unity的生命周期后,这快设计的差不多,实例化一个继承Laya的类的时候,也可以看到相关的函数:

/**
     * 组件被激活后执行,此时所有节点和组件均已创建完毕,此方法只执行一次
     */
    //onAwake(): void {}

    /**
     * 组件被启用后执行,例如节点被添加到舞台后
     */
    //onEnable(): void {}

    /**
     * 组件被禁用时执行,例如从节点从舞台移除后
     */
    //onDisable(): void {}

    /**
     * 第一次执行update之前执行,只会执行一次
     */
    //onStart(): void {}

    /**
     * 手动调用节点销毁时执行
     */
    //onDestroy(): void {

    /**
     * 每帧更新时执行,尽量不要在这里写大循环逻辑或者使用getComponent方法
     */
    //onUpdate(): void {}

    /**
     * 每帧更新时执行,在update之后执行,尽量不要在这里写大循环逻辑或者使用getComponent方法
     */
    //onLateUpdate(): void {}

    /**
     * 鼠标点击后执行。与交互相关的还有onMouseDown等十多个函数,具体请参阅文档。
     */
    //onMouseClick(): void {}

2,TS的单例化

  单例化是常见的设计模式,ts的单例化用传统写法是这样:

export  class UIProp {
    private static instance: UIProp = null;
    static getInstance() {
      if (!UIProp.instance) {
        UIProp.instance = new UIProp();
      }
      return UIProp.instance;
    }
    /* 
      单例模式,仅允许通过 UIProp.getInstance 获取全局唯一实例
    */
    private constructor() {
      console.log("创建函数");
    }
    

    public Start()
    {
        console.log("UI数据初始化");   
             
    }    

    public Update()
    {

    
    }

  }

调用方法如下:

 UIProp.getInstance().Update();

  但明显这样写很麻烦,尤其在单例化很多的情况下。而我想到,在C#可以用静态+泛型的方法解决。ts既然语法特性和C#很像,没道理不能简化,如是我又找到了如下写法:

//实例化脚本:基类
export class Singleton<T>{
    private static inst: any = null;
    public static Inst<T>(s: { new(): T }): T
    {
        if (this.inst == null)
        {
            this.inst = new s();
        }
        return this.inst;
    }

}

  之后再想创建单例化类的时候,只需要这样写就行。

import { Singleton } from "./Singleton";

/**
 * name
 */
export class Test extends Singleton<Test>{

    public Start()
    {
        console.log("初始化成功Test");
    }
}


  调用方法如下:

 Test.Inst(Test).Start();

  我们简单测试下,结果如下:

laya游戏框架,Laya3.0,TypeScript,游戏

   暂时就先更新这么多,数据存储和读表放到端午节再更。

~~~~~~~2023/6/18~~~~~~~~

3,Excel表格读取

  抱歉鸽了大家这么久,中间项目上线等系列琐事,耽误了进度。

  最近一直在思考,用什么来处理excel表比较合适。一般做过游戏的都知道,作为策划需要用excel来配置数值,而程序需要将这些数据读取出来并用于程序里面。比如很简单的角色升级表:

laya游戏框架,Laya3.0,TypeScript,游戏

  在unity这边,用的是二进制存储的,所以内存还可以接受;但laya这边,当我试图用json来存储数据的时候,才发现一个严重的问题,那就是无用的格式信息占据了大多数的内存。如上表,转为json后如下所示:

laya游戏框架,Laya3.0,TypeScript,游戏

  我们可以看出来,这里面有很多无效的格式信息,占据的内存甚至远超数据本身。

  这里我问了下别的用laya开发的项目组(国内某知名游戏),他们用的是sql二进制的方式存储的表格数据,这里作为备选方案。

  不过现在读取数据库这块比较复杂,所以我还是准备用excel自己定义格式转存为json,之后自己解析,代码周末续上。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~文章来源地址https://www.toymoban.com/news/detail-539410.html

  顺便说下,之前一直在纠结采用unity还是laya开发。但最近unity搞得安装收费模式真是令人无语,所以还是决定采用laya。毕竟多个引擎多个后路。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

到了这里,关于Laya3.0游戏框架搭建流程(随时更新)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯重点(C/C++)(随时更新,更新时间:2023.4.20)

    本次更新内容:2.14图论例题补充 目录 1  技巧 1.1  取消同步(节约时间,甚至能多骗点分,最好每个程序都写上) 1.2  万能库(可能会耽误编译时间,记不住头文件就用这个) 1.3  return 0 1.4  编译设置(Dev C++) 1.5  memset、fill填充函数 1.5.1  memset 1.5.2  fill 1.6  时间复杂度

    2023年04月20日
    浏览(37)
  • (随时更新)人工智能如何挑选科研方向?

    名字:创享干货日记 说明:创造、收集、分享干货资源 本人所有资源汇总:金山智能文档 —————————— 挑选科研方向坑太多了,所以写个文档让自己注意、也让大家避避坑,会大概说说挑选科研方向的注意事项,随时更新。 各位想知道啥都可以评论,我这边看心

    2024年01月17日
    浏览(42)
  • MAUI学习之始--基础知识(随时更新)

    我理解的lambda表达式就是把函数名省略了一下 比如 1. 文本修饰:TexDecrations = \\\"\\\" // 可以加下划线或者删除线(就是字上划一横) 2. 转换字体:CharacterSpacing = \\\"\\\" //字符间距,可以小数,正数负数 3. 文本转换:TextTransform=\\\"\\\" // 所有字符转换大写或小写 4. 换行: 在Text=”“中,#

    2024年02月11日
    浏览(37)
  • yolov5运行过程遇到的小问题(随时更新)

    解决办法:插入下面代码 解决办法: 如果不好使再考虑降低Batch_Size大小或者调整虚拟内存可用硬盘空间大小!(调整虚拟内存可用硬盘空间大小网上随便找都有笔记,照抄即可没坑。) 贴张运行成功的照片叭 有问题欢迎评论区讨论!

    2024年02月09日
    浏览(33)
  • Unity手机游戏开发:从搭建到发布上线全流程实战

    前言: 技术书籍是学习技术知识的重要资源之一。读技术书可以帮助我们学习新技能和知识,技术书籍提供了可靠的、全面的信息,帮助我们快速学习新技能和知识。同时技术书籍有助于保持你的竞争力,因为它们提供了最新的技术知识和实践。这在当今快速发展的技术领域

    2024年01月22日
    浏览(65)
  • 在matlab中使用PTB时遇到的问题以及解决方法(随时更新)

    目录 问题1:错误使用 Screen methods: 问题2:图片太大,PTB函数无法呈现 methods: See error message printed above. 出错 PsychImaging (line 2470)             [win, winRect] = Screen(\\\'OpenWindow\\\', screenid, clearcolor, winRect, pixelSize,             numbuffers, stereomode, multiSample, imagingMode, specialFlags, clientRec

    2024年02月06日
    浏览(47)
  • 【PyTorch框架】——框架安装&使用流程&搭建PyTorch神经网络气温预测

    目录 一、引言 二、使用流程——最简单例子试手 三、分类任务——气温预测   总结: Torch可以当作是能在GPU中计算的矩阵,就是ndarray的GPU版!TensorFlow和PyTorch可以说是当今最流行的框架!PyTorch用起来简单,好用!而TensoFlow用起来没那么自由!caffe比较老,不可处理文本数据

    2024年02月05日
    浏览(39)
  • 【pygame入门】pygame游戏实例入门级教程,如有不懂欢迎随时补充留言。

    pycharm+anconda3; 第三方库: pygame;(从标题看这句略显多余) 方法一:直接在pycharm里面安装。 files-seting-project-python Interpreter 在左侧界面的最左侧边栏上面有个加号,点击后在弹出页面搜索需要的第三方库,然后直接安装。 方法二:pip安装。 因为用的是anconda所以需要在终端里面

    2024年02月04日
    浏览(47)
  • 从零搭建完整 Python 接口自动化测试框架—持续更新

    本接口自动化框架采用 python + unittest + request + openpyxl + myddt + pymysql 来实现接口自动化。  unittest 是 Python 自带的一个单元测试框架 2.1 作用 管理用例 批量执行用例 组织运行结果/报告 让代码更稳健 可拓展 2.2 unittest 框架中,有以下几个组件: TestCase:即测试用例,Unittest提供

    2024年02月09日
    浏览(69)
  • Cloudreve搭建云盘系统,并实现随时访问

    1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局,一时间公有云盘遍地开花。但一段时间后,公有云盘潜在的安全问题也暴露出来,原有的共有云盘用户纷纷转为搭建私有云盘,也带动了群晖等一众私有云盘供应商的发展。可群晖硬件动辄数千,让

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包