APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个支持2D、3D的游戏与应用开发的的小游戏引擎——LayaAir

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

支持WebGL 1.0与2.0 自适应。支持ActionScript3、TypeScript、JavaScript三种开发语言,适用2D、3D产品研发。性能媲美原生APP,一次开发HTML5、APP(安卓与iOS)、小游戏(微信小游戏、QQ小游戏、百度小游戏、支付宝小游戏、BiliBili小游戏、字节跳动小游戏、小米快游戏、OPPO小游戏、vivo小游戏、华为快游戏、等)各个平台同时发布。

功能特性

LayaAir引擎主要包括 引擎库LayaAir ide 两大核心部分。

LayaAir2.0引擎库功能

  • LayaAir2.0引擎不仅保持了1.0的原有功能,比如:精灵、矢量图、文本、富文本、位图字体、动画、骨骼、音频与视频、滤镜、事件、加载、缓动、时间、网络、UI系统、物理系统、TiledMap、prtocol等API;
  • 还新增内置了box2D物理引擎、组件化支持,以及150多款3D功能,比如:新增的主要官方材质包括PBRStandardMaterial、PBRSpecularMaterial以及UnlitMaterial材质等。
  • 纹理方面,增加多种纹理参数配置(mipmap、format、wrapModeU、wrapModeV、filterMode、anisoLevel), 增加纹理上传像素接口, GPU纹理压缩。
  • 动画方面,新增Animator动画融合功能crossFade,新增动画多层混合播放,动画更新机制调整为实时插值,大幅减少内存和动画流畅度表现,新增多种材质属性动画
  • 支持开发2D、3D产品研发,支持同时发布为Web(浏览器、webView)、Native APP(IOS、安卓)、小游戏(微信、手Q、百度、头条、抖音、小米、OPPO、vivo、华为)、等多种版本。

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

LayaAir2.0 IDE功能

LayaAir2.0 IDE主要包括项目管理代码开发编辑器可视化编辑器第三方工具链支持工具等。其中主要功能包括:

  • 代码开发
  • UI与场景编辑器
  • 场景管理(2.0新增)
  • 粒子编辑器
  • 动画编辑器
  • 物理编辑器(2.0新增)
  • 组件化支持(2.0新增)
  • 3D支持(2.0新增)
  • LayaCloud项目支持(2.0新增)
  • 脚本扩展
  • 预设
  • APP打包
  • JS混淆与压缩
  • 第三方工具链转换工具(Unity3D、TiledMap、Spine、龙骨……)

Laya2.0 IDE 兼容LayaAir 1.x版本的写法,在2d项目中,可以不需要太大的改动即可把原有项目升级到2.0引擎(升级前建议备份)

Laya2.0 IDE 采用挂载组件脚本与场景管理的方式进行开发,在ide中编辑场景与页面组件,通过添加脚本的方式,使项目开发更利于程序,美术,策划的协同工作,并且对初次接触Laya的开发者,更易于上手,开发方式更友好。

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

开发语言

由于LayaAir引擎支持ActionScript3(AS3)TypeScript(TS)JavaScript(JS)三种语言开发,到底用哪种语言更好呢?常常困惑着刚接触引擎的新手们。这里简单介绍一下。

关于JS语言

需要大家注意的是JS语言虽然上手更为容易,但是作为一弱类型语言,开发与调试的难度,以及大型项目的管理与多人协作等方面,都不如TS与AS3这种可以在IDE中检测类型和语法语言。当代码越来越多的时候,JS一旦不小心写错,IDE中并不会有任何提示,只有在运行的时候才会发现问题,经常有开发者为了查一个小小的失误,花费大量的时间成本。所以虽然支持JS语言开发,但并不建议采用该语言作为中型或大型项目的开发。

关于TS语言

TS语言是LayaAir引擎官方推荐的开发语言,也是自2.2引擎开始,LayaAir引擎源码所使用的语言。在官方的2.0引擎视频教学中,也会仅采用TS语言进行教学。

关于AS语言

AS语言是LayaAir 2.2版本之前的引擎源码语言,AS3语言曾经是页游时代的霸主,但自从Adobe正式宣布放弃Flash之后,也代表着该语言也将步入无人维护的境地。那一些新的语言特性自然难以支持,毫无疑问,继续使用该语言将会拖引擎的后腿。所以,LayaAir引擎源码语言进行了变更,但2.X版引擎,AS语言版本仍会保持兼容及维护。但未来3.x一定会放弃该语言的支持。所以建议开发者在创建新项目的时候不要使用AS语言。

代码示例

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

场景加载

ActionScript

package LayaAir3D_Scene3D { import common.CameraMoveScript; import laya.d3.core.Camera; import laya.d3.core.scene.Scene3D; import laya.d3.math.Vector3; import laya.d3.math.Vector4; import laya.display.Stage; import laya.utils.Handler; import laya.utils.Stat; public class SceneLoad1 { public function SceneLoad1() { //初始化引擎 Laya3D.init(0, 0); Stat.show(); Laya.stage.scaleMode = Stage.SCALE_FULL; Laya.stage.screenMode = Stage.SCREEN_NONE; //加载场景 Scene3D.load("res/threeDimen/scene/LayaScene_dudeScene/Conventional/dudeScene.ls", Handler.create(this, function(scene:Scene3D):void { Laya.stage.addChild(scene) as Scene3D; //获取场景中的相机 var camera:Camera = scene.getChildByName("Camera") as Camera; //移动摄像机位置 camera.transform.position = new Vector3(0, 0.81, -1.85); //旋转摄像机角度 camera.transform.rotate(new Vector3(0, 0, 0), true, false); //设置摄像机视野范围(角度) camera.fieldOfView = 60; //设置背景颜色 camera.clearColor = new Vector4(0, 0, 0.6, 1); //加入摄像机移动控制脚本 camera.addComponent(CameraMoveScript); //设置灯光环境色 //scene.ambientColor = new Vector3(2.5, 0, 0); })); } }}

JavaScript

class SceneLoad1{ constructor(){ Laya3D.init(0, 0); Laya.Stat.show(); Laya.stage.scaleMode = Laya.Stage.SCALE_FULL; Laya.stage.screenMode = Laya.Stage.SCREEN_NONE; Laya.Scene3D.load("res/threeDimen/scene/LayaScene_dudeScene/Conventional/dudeScene.ls", Laya.Handler.create(this, this.sceneLoadFinished)); } sceneLoadFinished(scene){ Laya.stage.addChild(scene); let camera = scene.getChildByName("Camera"); camera.addComponent(CameraMoveScript); }}//激活启动类new SceneLoad1();

TypeScript

import CameraMoveScript from "./common/CameraMoveScript"class SceneLoad1 { constructor() { Laya3D.init(0, 0); Laya.Stat.show(); Laya.stage.scaleMode = Laya.Stage.SCALE_FULL; Laya.stage.screenMode = Laya.Stage.SCREEN_NONE; Laya.Scene3D.load("res/threeDimen/scene/LayaScene_dudeScene/Conventional/dudeScene.ls", Laya.Handler.create(null, function(scene:Laya.Scene3D):void { Laya.stage.addChild(scene) as Laya.Scene3D; var camera:Laya.Camera = scene.getChildByName("Camera") as Laya.Camera; camera.addComponent(CameraMoveScript); })); }}new SceneLoad1;

引擎示例

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

环境反射

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

光照贴图

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

方向光

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

网格加载

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

基础碰撞器

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

玻璃折射

APP、小程序开源小游戏引擎,支持2D、3D的游戏开发(app,小程序开源小游戏引擎,支持2d,3d的游戏开发吗)

模型示例

—END—

开源协议:https://gitee.com/layabox/LayaAir/blob/master/LICENSE.md

开源地址:https://gitee.com/layabox/LayaAir

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月3日 上午9:52
下一篇 2023年4月3日 上午10:08

相关推荐

  • 欧洲坐席管理系统项目

    欧洲坐席管理系统项目 随着现代医疗技术的不断进步,现代医院中的坐席管理也变得越来越重要。欧洲坐席管理系统项目是一种现代化的坐席管理工具,能够帮助医院更好地管理坐席,提高坐席效率和质…

    科研百科 2025年6月10日
    1
  • 借助公众号完成的微信答题抽奖小程序怎么制作(微信公众号答题抽奖怎么做的)

    通过公众号开展的微信答题抽奖活动一般主要目的一是给公众号增加粉丝,二是便于扩大活动的传播范围。用户参与答题的话只需要关注公众号发关键词或者点菜单进入页面参与就行了,参与方式也是非常…

    科研百科 2023年4月3日
    229
  • 拟建项目与预算管理系统

    拟建项目与预算管理系统 随着现代项目管理的不断发展,拟建项目与预算管理系统已经成为了项目管理中不可或缺的一部分。这些系统可以帮助项目经理更好地控制和管理项目的成本,确保项目能够按时…

    科研百科 2024年12月11日
    5
  • 党支部应当坚持()。决定重大事项,必须深入调查研究,进行科学论证,广泛听取意

    党支部应当坚持深入调查研究、科学论证和广泛听取意见的原则 近年来,我国在政治、经济、文化等方面取得了令人瞩目的成就,但也面临着许多挑战和问题。作为党的组织,党支部必须深刻认识到,决…

    科研百科 2024年11月30日
    11
  • 贯彻落实法规情况报告

    贯彻落实法规情况报告 随着经济的发展和社会的进步,法律法规的颁布和实施对于维护社会公正,保障人民权益,促进社会和谐稳定具有重要的意义。然而,在实施法律法规的过程中,仍然存在一些贯彻…

    科研百科 2024年12月4日
    1
  • 微软的项目管理软件

    微软的项目管理软件: 项目管理中的“神器” 在现代化的商业环境中,项目管理已经成为了一项必不可少的技能。而微软的项目管理软件则是项目管理中不可或缺的“神器”。本文将介绍微软的项目管…

    科研百科 2024年7月22日
    24
  • 项目集进度管理

    项目集进度管理 项目集进度管理是一种有效的项目管理方法,能够帮助组织更好地控制项目进度和质量。项目集进度管理将项目划分为多个子项目,每个子项目都按照特定的时间表和预算进行,并且彼此…

    科研百科 2025年1月14日
    1
  • 科研项目 标书怎么查

    科研项目的标书查询是科研项目申请过程中非常重要的一步,它直接关系到项目是否能够成功获得资金支持。因此,如何查询科研项目的标书是非常重要的。本文将介绍科研项目标书查询的基本步骤和方法…

    科研百科 2025年3月22日
    4
  • 农资台账系统操作太复杂?莫着急,会用手机就会用“农资大掌柜”

    距离8月1日就剩不到一个月的时间啦!重要提醒:你取得《农药经营许可证》了吗?如果没有这个证,你的门店可能会关门歇业哦。如果无证还照常开门,小心农业部门查处啊。 农资经营朋友一定要重…

    科研百科 2022年7月17日
    1.8K
  • 写字楼办公系统

    写字楼办公系统:现代办公室的数字化助手 随着科技的不断进步,现代办公室已经不再局限于传统的实体建筑,而是变成了数字化的工作场所。写字楼办公系统作为现代办公室的重要组成部分,已经成为…

    科研百科 2024年9月18日
    15