【3.8.1 社区公测帖】(0926)

Preview inSimulator

3.8的JSB手动绑定文档更新一下吧
都对不上了

3.8版本编辑器,多余出来的meta文件不会自动删除了吗?

非常感谢,我还在思考那个用户的反馈有没有其它的解决方案,你已经给我出完示例了。
lateUpdata原来骨骼动画的时候就用过,不是很方便。
程序式动画功能还没学习,但我简单的理解为我传一个旋转给程序式动画,它类似于在lateUpdate中帮我把值覆盖上去。
后续引擎这边会不会对于上下半身这种自定义操作的功能,给到一个比较简单的方案呢。还是程序式动画就是最终的方案。

程序式动画就是最终的方案。

它就是提供用来代码操控的。

感谢,那后续我们使用程序式动画来解决这类问题。

我还有一个动画图性能方面的问题请教一下。


上次你有说过这个性能问题可以修改用户的浏览器到 [设置]-[safari 设置]-[Experimental Features] 中,关闭 WebGL via Metal
但作为开发者,应该无法主动修改用户的浏览器属性的,请问这个问题有后续吗。
如果动画图支持instancing会不会对这个问题有所帮助呢。
现在我们的情况是这样子,如果是10角色左右,我们使用动画图,如果是超过10个角色,我们改回骨骼动画,所以一直在观望引擎有没有更好的解决方案。

好的,我们会留意性能问题。

1赞

你这边发现是 preview 的 view size 计算有问题导致的 应该和 spine 没有关系。这个问题我同事已经在看了。打包的app 这些应该是没问题的吧?

期待你们的好消息。

不是说viewsize的问题,我这边发下两边运行效果对比应该就清楚了video.rar (1.2 MB) 效果明显是不一样的,打包后原生效果和preview效果一样,骨骼渲染位置没有及时跟上设置位置

我用的不是 UI 组件面板哈,我是在插件 html 里使用的

    <ui-file 
    slot="content" 
    type="directory" 
    protocols="project" 
    @confirm="onChangeRuntimeSourceDirectory($event.target.value)" 
    @change="onChangeRuntimeSourceDirectory($event.target.value)" 
    v-model="runtimeSourceDirectory">

    </ui-file>
    onChangeRuntimeSourceDirectory(url: string) {
        if (url.startsWith("project://assets")) {
            config.manifest.runtimeSourceDirectory = url.substring(10);
            config.serializeConfig();
        }
        else {
            this.runtimeSourceDirectory = "project://" + config.manifest.runtimeSourceDirectory;
            console.log("源码路径必须在 project/assets 中");
        }
    },

let pos = event.getUILocation();
你打印下这个 pos 看看 是 spine 的刷新问题还是 pos 的位置采样问题。如果你要磨平这种不同平台事件响应频率差距 建议你不要直接用这个pos 应该是 增加一个 smooth pos 平滑过去。 视频看 模拟器运行有掉帧情况。你打包手机也是这样?

1赞

这个是测试用的demo所以用的是点击移动事件,实际上游戏中是跟随子弹位置的打点来取值,效果差距更大,应该不是位置的问题,项目中位置移动都有加lerp来平滑,这是项目技能对比视频:Desktop.rar (2.0 MB)

这个看上去确实极不自然

逐帧看会发现每帧spine都会闪一下再纠正到正确显示,感觉像没有及时刷新渲染数据

说好的spine-wasm内存泄漏呢=。=

1赞

请问下富文本高度怎么在设置string的同一帧获取改变的高度,我这边不能在下一帧去获取。要实时获取高度

3.8.0两个Bug:
1、2D射线检测,如果目标在碰撞体中,检测会有问题
2、Spine挂点加碰撞体,如果缩放是赋值,碰撞体会无效
NewProject.zip (736.0 KB)

v-model 绑定的 value 值被 substring 去掉了协议,值的格式不完整,不需要去除。
protocols="project" 是指定可切换协议,如果 protocols="file,project" 但不会初始化值,初始化值中识别使用协议仍然是基于完整的 value 格式。

此外事件 confirm 和 change 可以只使用一个,confirm 是为了补充部分 ui-element 有连续变动但有得有最后动作识别使用的,比如 ui-num-input, ui-color-picker 这些的滑动,一般使用 change 足够了。
(confirm 在需要 undo 的机制中也会被需要,可参考引擎仓库里的 editor/inspector 那些编辑模板。)

宝贝,很多年前说的 spine挂点只能在最上层 的问题计划啥时候改呐