Giter Club home page Giter Club logo

egret3d's Issues

支持微信小游戏

目前 Egret3D 的内部版本在技术上实现了支持了微信小游戏,但是考虑到和 egret-target-wxgame 项目以及 egret-core 项目的一致性,这个功能还需要进行一些调整,预计在 0.9 版发布

3d骨骼蒙皮动画 渲染不出来的问题

5.3.2的egret游戏引擎,对于骨骼蒙皮动画支持不很好啊,同样的模型在layabox,babylon等引擎,在ios浏览器下都能正常显示,而在egret3d中就无法显示,上次官方技术说骨骼数量限制问题,同样的硬件跟运行环境别人可以,egret3d不行,这下一个版本是修复还是就只能27个以内,如果是这样的引擎,那还我们只能转到别的3d的引擎做游戏了。

5.3.2遇到的几个坑

1、粒子使用Mobile AlphaBlended导出的特效完全就是白色快。并且和3D模型进行穿插时异常怪异
2、发布微信小游戏,安卓可以正常显示排行版,IOS则无法显示排行榜。

一些建议

1、通过loadGroup加载一个通过unity导出的场景,需要先加载贴图,再加载材质,然后加载模型,最后加载场景描述文件,顺序不正确会导致解析出错。建议资源加载完成解析数据的时候如果相应的依赖资源没有加载,则先不加载,待loadScene的时候再处理一次依赖资源,或者别的方法使用加载解析更为灵活
2、由于1,现在每次修改场景,都需要手动去调整default.res.json里在的加载顺序。另外现在3D场景的文件类型太多,修改起来好麻烦,ResDepot里面还没有支持新的资源类型,管理起来非常费劲。是否可以考虑延用2D的加载类型,把解析类型放在文件头里面,方便统一管理资源。
3、vs开发,没有console.log的日志输出,这个还挺影响开发的
4、粒子系统现在没有prewarm。

1.2的完整开发者教程

听说一月迭代一次版本,等1.2完整教程一个月了,这月中旬能更新出来吗?
跪求

egret3d引擎兼容性问题

在paper生成的工程里面开发,3d模型在ios手机上出现模型不显示的情况。
是当下编辑用的是paper创建的工程,编译时查找的是18年的5.3.2的引擎库,是否因为实现相关不匹配造成的?还是ios手机下需要一些特殊的选项?

粒子系统的几个坑

1、MainModule里面startColor不支持
2、RotationOverLifetime的AngularVelocity只支持Constant
3、Particles目录下的Shader支持不全,Multipy(Double)就不支持
4、paper还不能序列化和反序列化粒子组件

关于安装命令行工具

执行npm install cnpm -g
出现error,提升error信息为:
npm ERR! code EINVALIDTAGNAME
npm ERR! Invalid tag name "–g": Tags may not have any characters that encodeURIComponent encodes.

npm ERR! A complete log of this run can be found in:

改变位置与改变角度同时操作导致获得冲突

键盘做每帧世界坐标坐标改变事件
鼠标做每帧世界角度改变事件
单一操作键盘--没有问题
单一操作鼠标--没有问题

鼠标键盘同时操作:会导致坐标发生改变,视图方面物体也发生了转动,但无论视图内物体如何转动,打印获得该物体的世界角度不会改变.以至于无法在同时操作鼠标键盘时,使另一对象同步该物体角度.

整理的几个BUG

1、BoxCollider的aabb属性没有随着移动刷新
2、boundingSphere有大问题。半径数据看数值是个直径。还有其他的问题整理中。
3、onAwake里面加一行this.renderer.boundingSpherpherphere代码会导致模型尺寸异常
4、onAwake现在是initialize里面执行的。这时候拿不到参数。改成第一次onEnable之前执行应该就好了。其实组件的initialize就应该带参数,不然无法自定义组件了。
5、sendMessage里面的判断有误,改成component instanceof of of paper.Behaviour就好了
6、@paper.editor.propertpertperty(ty(ty(paper.editor.EditType.LIST, { , { , { listItems: s: s: paper.editor.getItemsFromEromEromEnum(um(um(egret3d.ColliderType)ype)ype) }),,paper会变成string类型的

egret3d 使用命令行创建项目报错

Error: Cannot find module 'args'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object. (C:\Users\caozhiyong.GT\AppData\Roaming\npm\node_modul
es@egret\paper-cli\cli\cli.js:4:14)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)

未找到paper-cli

按照

  • 下载 EgretLauncher
  • https://github.com/egret-labs/egret-core/tree/5.3.x 下载 egret 5.3.2 版本引擎
  • 通过 EgretLauncher的“安装本地引擎”的方式安装 egret 5.3.2
  • 在命令行执行 egret versions,如果安装引擎列表里包含 5.3.2 则代表安装成功
  • 下载并安装 Egret3D 编辑器

这个步骤安装完成egret3d后运行paper,提示 未找到paper-cli

egret3d 变更parent 没有考虑旋转角度的问题

场景中有三级组件:空 gameObject parent0 > 空 gameObject parent1 > cube ;
步骤1,parent1 绕 -y 方向旋转 90度,此时 parent1 相对 parent0 旋转角度为 (0,-90,0)
步骤2,将 cube 的 parent 设为 parent0 ,cube.setParent(parent0, true) ,此时 cube 相对 parent0 旋转角度为(0,0,0),cube 相对世界旋转角度为(0,-90,0),此处相对世界旋转角度似乎是无效的。

在 unity3d 中,步骤2 之后 cube 相对 parent0 旋转角度为 (0,-90,0) 这应该才是合理的结果,或者是预期的结果。

我想了多种办法,但都无法解决这个问题,我把 parent1 相对 parent0 的旋转角度 应用到 cube 上,但多次旋转时,会出现旋转顺序不匹配的问题:比如 先 -y 旋转 90度,再 x 旋转 90度,最终的结果是 先 x 旋转 90度,再 -y 旋转 90度,这也不是预期的结果。旋转顺序是随机的。

我看了 setParent(value, worldPositionStays) 源码,但是没看到影响旋转角度的代码在哪,望指点。

谢谢!

不能运行导出的小游戏工程

导出小游戏工程后按照官方的修改后,还是无法运行起来,微信开发工具提示egret_native找不到。
环境:MacOS 10.13.6

微信小游戏问题

Cannot read property 'prototype' of undefined
TypeError: Cannot read property 'prototype' of undefined
问题

默认egret3d项目发布微信小游戏报错,没能创建canvas

版本都是最新的,操作步骤如下:
1,按教程 创建3D项目 第2节 创建并运行 Egret3D 项目 创建项目;
2,用wing打开并按提示配置文件,能够正常运行游戏;
3,发布微信小游戏,用3d项目 libs/egret.wxgame.js 替换 微信项目 egret.wxgame.js;
4,修改代码,我不知道理解的对不对,修改如下:
//egret.runEgret = runEgret;
egret3d.runEgret();
helloworld.run();
egret.updateAllScreens = updateAllScreens;
5,运行报错, weapp-adapter.js 631 行,var canvas = wx.createCanvas(); canvas 为 undefined ;
印象中大半个月前我有使用默认3D项目成功发布到微信小游戏。。
请教操作流程有没有问题?尤其是第4步修改代码对不对?
谢谢!

5.3X 的引擎 eui.EditableText 在2D/3D混合场景下没法使用

使用5.3X 的引擎,在Main.ts 添加下面的代码:

export async function run() {
  await RES.loadConfig("resource/default.res.json", "resource/");
  await RES.loadGroup("preload");
  paper.Application.sceneManager.createScene("defaultScene");
  createGameUI();
}

function createGameUI() {
  let gameObject = new paper.GameObject();
  gameObject.name = "GameUI";
  gameObject.addComponent(egret3d.Egret2DRenderer);
  gameObject.addComponent(GameUIScript);
  gameObject.layer = paper.Layer.UserLayer2;
}

class GameUIScript extends paper.Behaviour {

    onStart() {
        const renderer = this.gameObject.getComponent(egret3d.Egret2DRenderer);
        const adapter = new egret3d.MatchWidthOrHeightAdapter();
        adapter.setResolution(egret3d.stage.screenViewport.w, egret3d.stage.screenViewport.h);
        renderer.screenAdapter = adapter;
        let assetAdapter = new AssetAdapter();
        egret.registerImplementation("eui.IAssetAdapter", assetAdapter);
        egret.registerImplementation("eui.IThemeAdapter", new ThemeAdapter());

        let theme = new eui.Theme("resource/2d/default.thm.json", renderer.stage);
        theme.addEventListener(eui.UIEvent.COMPLETE, onThemeLoadComplete, this);

        function onThemeLoadComplete() {
            let textView : eui.EditableText = null;
            textView = new eui.EditableText();
            textView.x = 120;
            textView.y = 320;
            textView.text = "test";
            renderer.root.addChild(textView);
        }
    }
    onUpdate() {
    }
}

上面的这个textView,被鼠标点上去以后,获得了focus,就会出错。

在egret.web.js里出错:HTML5StageText.htmlInput 是undefined

官方示例的water的shader在非示例项目中无法使用

创建新的3D项目中,加入water.shader.json,water_frag.glsl,water_vert.glsl文件,把文件路径修改后,

加载代码如下:
await RES.getResAsync("路径");
创建材质代码如下:
egret3d.Material.create(RES.getRes("路径"));
运行后报:egret3d.js:19279 缺少Uniform定义:modelMatrix错误,然后尝试用系统该定义好的
modelMatrix,modelViewMatrix,projectionMatrix,viewMatrix 都是提示没有定义

在使用命令行创建工程时出错

我在按照这里的说明步骤执行
https://mp.weixin.qq.com/s/2miD_tvDZski5dK32fWeKw
其中:
npm install cnpm –g 和 cnpm install @egret/paper-cli -g
paper create helloworld
都可以正常执行,但是下一步报错:
(在这之前我曾经手动下载安装了egret-core-5.3.x,但是即时我删除了已安装的引擎,再执行上面的语句也会失败,并且工程无法编译)
D:\Egret\test3d>paper install egret3d
SyntaxError: Unexpected token D in JSON at position 2
at JSON.parse ()
at Object. (C:\Users\Administrator\AppData\Roaming\npm\node_modules@egret\paper-cli\lib\install.js:77:35)
at step (C:\Users\Administrator\AppData\Roaming\npm\node_modules@egret\paper-cli\lib\install.js:32:23)
at Object.next (C:\Users\Administrator\AppData\Roaming\npm\node_modules@egret\paper-cli\lib\install.js:13:53)
at fulfilled (C:\Users\Administrator\AppData\Roaming\npm\node_modules@egret\paper-cli\lib\install.js:4:58)
at

请问是什么原因呢?

法线贴图导出错误

问题描述:在Unity环境中法线贴图如果Texture Type选择Normap map,会导出一张偏红的图片,在Egret3d引擎使用此图片时,光照方向不对。
临时解决方案:先在Unity中把Texture Type选择Default,然后导出会得到正确的图片。

完整解决方案:在Unity中Normal Map会被特殊转换一下,所以导出的时候应该也要特殊里。

5.3.2版本音频加载造成页面假死

当前5.3.2版本的引擎,paper创建的工程,将音频文件打包到资源组里面,资源文件比较多的时候,加载的时候,不知是音频加载出错还是其他问题,ios手机问题特别明显。
不知道是配置问题还是什么问题?

不能创建项目

我按照文档先安装了npm install @egret/paper-cli -g
然后执行这个paper create helloworld
然后就报错了,报错如下,我下载的是最新的版本
C:\Users\Administrator\AppData\Roaming\npm\node_modules@egret\paper-cli\out\ind
ex.js:138880
let {protocol} = url.parse(uri);
^

SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object. (C:\Users\Administrator\AppData\Roaming\npm\node_modul
es@egret\paper-cli\cli\cli.js:5:17)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)

求助,还没开始就卡在这啦。。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.