Git Product home page Git Product logo

egret3d's People

Contributors

akdcl avatar elseswitch avatar midorimeng avatar szzg avatar wanderwang avatar wuliao2230 avatar zhrit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

egret3d's Issues

默认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步修改代码对不对?
谢谢!

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) 源码,但是没看到影响旋转角度的代码在哪,望指点。

谢谢!

法线贴图导出错误

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

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

egret3d引擎兼容性问题

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

5.3.2遇到的几个坑

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

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

我在按照这里的说明步骤执行
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

请问是什么原因呢?

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

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

微信小游戏问题

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

不能创建项目

我按照文档先安装了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)

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

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

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

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

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

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

一些建议

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

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

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

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)

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

支持微信小游戏

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

粒子系统的几个坑

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类型的

官方示例的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 都是提示没有定义

未找到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

1.2的完整开发者教程

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

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.