【全新玩法3D肉鸽】基础教程

网上买一些然后自己去调整

因为目前测试下来官方提供的物理引擎足够用,所有没有花时间再去研究

牛逼,刚卡死,杀了重进,就看到修复的公告

那是以前的修复公告 :joy:

引导会卡死我也遇到了

不过 setRotationFromEuler 和 new Vec3() 尽量少用
this.node.setRotationFromEuler(new Vec3(0, this.MoveDir[2], 0));
euler to quat 的计算比较麻烦

    public static fromEuler<Out extends IQuatLike> (out: Out, x: number, y: number, z: number): Out {
        x *= halfToRad;
        y *= halfToRad;
        z *= halfToRad;

        const sx = Math.sin(x);
        const cx = Math.cos(x);
        const sy = Math.sin(y);
        const cy = Math.cos(y);
        const sz = Math.sin(z);
        const cz = Math.cos(z);

        out.x = sx * cy * cz + cx * sy * sz;
        out.y = cx * sy * cz + sx * cy * sz;
        out.z = cx * cy * sz - sx * sy * cz;
        out.w = cx * cy * cz - sx * sy * sz;

        return out;
    }

可以写个EulerY to quat 转换 quat 的 x z 就不用算了,少了4次三角函数计算

const halfToRad = 0.5 * 3.1415926 / 180.0;
const temp_Q_0 = new Quat();
export function quatFromAngleY<Out extends IQuatLike>(out: Out, y: number) {
    y *= halfToRad;
    out.x = out.z = 0;
    out.y = Math.sin(y);
    out.w = Math.cos(y);
    return out;
}

quatFromAngleY(temp_Q_0, config.eulerY);
this.node.setRotation(temp_Q_0);
2赞

感谢大佬指点

以上,大家有什么问题,也可以沟通交流

玩的有点晕

是不是觉得操作上不如传统的摇杆舒服

感觉应该竖屏,竖屏配单手

这个主意很不错,但是要实际看下效果,如果地图是上下走动的效果会好一些,左右距离太小,不好看到敌人

switch少个break :joy:导致释放技能时同时释放了另外一个技能,另外一个技能资源没加载,导致卡死了,已经修复

不错很流畅,就是人物有点飘

能力有限,模型动作不是很好

此资源已经上架商城,想二次开发运营的大佬,可以看下
https://store.cocos.com/app/detail/7163

不是,就是移动起来有些飘,然后时间长就有头晕的感觉

那这个要好好研究下了

让我想到了亡灵杀手夏侯惇

换装

当前游戏功能上做了武器更换和人物换肤,由于没时间画贴图,所以实际上人物服装并没有去做。本次针对于武器换装做个介绍。

一般对于不随人物做变形动画的物品都采用挂点形式进行换装。

1.在人物Node的SkeletalAnimation上增加需要的挂点数量。
path为挂点的骨骼,这里选择右手的骨骼,target可以看作是挂点骨骼的映射,当挂点骨骼变化时,对应的target也会做出相应的变化。
基于人物Node创建一个子节点,拖入target后,子节点名称会变更为对应骨骼的名称+socket。
123
2.准备所有的武器,放在socket节点下,并调整好位置,最后生成prefab
2


3.完成以上步骤后,即可在代码中动态加载预制体实现武器切换
7a832e167bbb168846bd1411b3a9e857 00_00_02-00_00_10

            assetManager.getBundle('game').load(`/prefabname`, Prefab, (err, wuqiprefab) => {
                if (!err) {
                    let wuqinode = instantiate(wuqiprefab);
                    wuqinode.setParent(this.node.getChildByName('Bip01 R Hand Socket'));
                }
            })