Creator 3.0怎么在2D场景里面跑3D人物?

类似梦幻花园,求指点

1赞

同求同求啊

https://docs.cocos.com/creator/3.0/manual/zh/ui-system/components/editor/ui-model.html?h=uimesh

可以使用 UIMeshRender 组件,组件功能参考此文档。

2赞

请问有案例吗?

UIMeshRenderer 挂载不到模型上啊

3.0上用这个组件效果有点差,我这边实现的时候发现实际模型尺寸太小了,后来用来网上的方法把3d相机的拍摄到的图像投射到2d的精灵上
//指定图片获取指定相机纹理

Get3DTanker(camerSprite:Sprite,camera:Camera){

    const _colorAttachment = new GFXColorAttachment();

    const _depthStencilAttachment = new GFXDepthStencilAttachment();

    let renderTex = new RenderTexture();

    renderTex.reset({

        width: 700,

        height: 700,

        passInfo: {

            colorAttachments: [_colorAttachment],

            depthStencilAttachment: _depthStencilAttachment,

            subPasses:[],

        },

        

    });

        let spriteframe: SpriteFrame | null = camerSprite.spriteFrame;

        let sp: SpriteFrame = new SpriteFrame();

        sp.reset({

            originalSize: spriteframe!.originalSize,

            rect: spriteframe!.rect,

            offset: spriteframe!.offset,

            isRotate: spriteframe!.rotated,

            borderTop: spriteframe!.insetTop,

            borderLeft: spriteframe!.insetLeft,

            borderBottom: spriteframe!.insetBottom,

            borderRight: spriteframe!.insetRight,

        });

        camera.targetTexture = renderTex;

        sp.texture = renderTex;

        camerSprite.spriteFrame = sp;

}

我这里直接用正交相机照出来就行了 连UIMeshRender都没用,不知道会不会有什么问题
顺便提个BUG 明明掉用了super.destroy(),编辑器依旧报这个错,运行起来不会报。
Overwriting ‘destroy’ function in ‘XXXX’ class without calling super is not allowed.

2D的场景显示3D的人物,主要有 使用UIMeshRenderer组件 和 RenderTexture实现 两种方式。参考代码 https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.0/UIMeshRendererDemo https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.0/RenderTextureDemo

1赞

好的,回去看下

没看到用fbx模型啊,都是一个.mtl文件和贴图文件。是不是2d地图3d模型只能用2.x版本了。

可以用两个摄像机,一个显示2D世界,一个显示3D世界,需要用2D坐标同步3D世界对象时,做一个坐标转换即可

1赞

把摄像机调成正交模式,背景换上一张2D场景贴图,基本上就是你要的在2D场景上显示3D人物了。我就在做一个这类的111

大佬,请问3D人物怎么和2D障碍物碰撞呢

更新一下链接

UIMeshRenderer 方式
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.0/2DDemo/UIMeshRendererDemo
RenderTexture方式
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.0/2DDemo/RenderTextureDemo
骨骼动画-RenderTexture方式
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.0.0/2DDemo/RenderTextureDemoForSkeletalAnimation

2赞

1111make

在3.4.0下面打开会报错,大佬可以更新一下例子吗?

嗯嗯,宠粉。

升级到3.4.x版本的来了
UIMeshRenderer 方式
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.4.x/demo/Creator3.4.0_UIMeshRenderer
RenderTexture方式
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.4.x/demo/Creator3.4.0_RenderTexture
骨骼动画-UIMeshRenderer方式
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.4.x/demo/Creator3.4.0_UIMeshRenderer_SkeletalAnim
骨骼动画-RenderTexture方式
https://gitee.com/yeshao2069/CocosCreatorDemos/tree/v3.4.x/demo/Creator3.4.0_RenderTexture_SkeletalAnim

1赞

标记。赞。

3.4.x的版本打开CocosCreatorUIExpand里面的ReactVisualList,打开只有 当前渲染数量的item,滑动就后面都是空的了,能也更新下吗

嗯,找个时间更新。