抖音小游戏开发引擎(开源游戏引擎)

抖音小游戏开发引擎,开源游戏引擎。小编来告诉你更多相关信息。《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个支持2D、3D的游戏与应用开

抖音小游戏开发引擎,开源游戏引擎。小编来告诉你更多相关信息。

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

抖音小游戏开发引擎(开源游戏引擎)

功能特性

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,新增动画多层混合播放,动画更新机制调整为实时插值,大幅减少内存和动画流畅度表现,新增多种材质属性动画

抖音小游戏开发引擎(开源游戏引擎)

抖音小游戏开发引擎(开源游戏引擎)

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的开发者,更易于上手,开发方式更友好。

抖音小游戏开发引擎(开源游戏引擎)

抖音小游戏开发引擎(开源游戏引擎)

开发语言

由于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语言。

代码示例

抖音小游戏开发引擎(开源游戏引擎)

场景加载

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;

引擎示例

抖音小游戏开发引擎(开源游戏引擎)

环境反射

抖音小游戏开发引擎(开源游戏引擎)

光照贴图

抖音小游戏开发引擎(开源游戏引擎)

方向光

抖音小游戏开发引擎(开源游戏引擎)

网格加载

抖音小游戏开发引擎(开源游戏引擎)

基础碰撞器

抖音小游戏开发引擎(开源游戏引擎)

玻璃折射

抖音小游戏开发引擎(开源游戏引擎)

模型示例

—END—

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

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

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 5733401@qq.com 举报,一经查实,本站将立刻删除。本文链接:https://fajihao.com/i/142639.html

(0)
恰卡的头像恰卡
上一篇 2023-02-03
下一篇 2023-02-03

相关推荐