预制体中Effect的bug

[复制链接]
929 |7
窜稀大仙 发表于 2024-1-17 16:36:34 | 显示全部楼层 |阅读模式
问题描述及使用流程:包含特效的预制体,对其中的特效使用ForceStop(), 设置loop,均无效

回复

使用道具 举报

复读机读复读机 发表于 2024-1-18 09:45:01 | 显示全部楼层
是怎么获取预制体中的特效的呢,我测试一下
回复

使用道具 举报

复读机读复读机 发表于 2024-1-18 09:45:47 | 显示全部楼层
预制体中的特效在生成时gameObjectId是会改变的,看看是不是这个原因
回复

使用道具 举报

复读机读复读机 发表于 2024-1-18 11:04:13 | 显示全部楼层
试试这样写,是可以改变loopCount和使用ForceStop的
创建一个单端预制体,头节点下面挂一个特效,命名爆炸

@Component
export default class playEffect extends Script {

    private effect: Effect
    /** 当脚本被实例后,会在第一帧更新前调用此函数 */
    protected onStart(): void {
        if (SystemUtil.isServer()) {
            return
        }

        InputUtil.onKeyDown(Keys.One, () => {
            GameObject.asyncSpawn("9516ADFD469EC656B26C62A09B08C87D").then((object) => {
                this.effect = object.getChildByName("爆炸") as Effect
            })
        })

        InputUtil.onKeyDown(Keys.Two, () => {
            this.effect.play()

        })

        InputUtil.onKeyDown(Keys.Three, () => {
            this.effect.loopCount = 10;
        })

        InputUtil.onKeyDown(Keys.Four, () => {
            this.effect.forceStop()
        })

    }
}


回复

使用道具 举报

窜稀大仙楼主 发表于 2024-1-19 16:51:27 | 显示全部楼层
复读机读复读机 发表于 2024-1-18 11:04
试试这样写,是可以改变loopCount和使用ForceStop的
创建一个单端预制体,头节点下面挂一个特效,命名爆炸
...

原来如此
之前我是直接在预制体编辑里添加的Effect,之后又通过名称获取的预制体子对象
回复

使用道具 举报

窜稀大仙楼主 发表于 2024-1-19 22:10:17 | 显示全部楼层
复读机读复读机 发表于 2024-1-18 09:45
预制体中的特效在生成时gameObjectId是会改变的,看看是不是这个原因

还有一个bug是,预制体里的特效,在编辑器中调整一些特效专用的属性(例如颜色)后,在场景中第一次创建预制体后,不会生效,第二次创建才会生效。
回复

使用道具 举报

复读机读复读机 发表于 2024-1-23 11:16:23 | 显示全部楼层
窜稀大仙 发表于 2024-1-19 22:10
还有一个bug是,预制体里的特效,在编辑器中调整一些特效专用的属性(例如颜色)后,在场景中第一次创建预 ...

可以使用asyncSpawn来创建试试,有可能是改了颜色后spawn需要优先加载了
回复

使用道具 举报

窜稀大仙楼主 发表于 2024-2-16 13:17:15 | 显示全部楼层
复读机读复读机 发表于 2024-1-23 11:16
可以使用asyncSpawn来创建试试,有可能是改了颜色后spawn需要优先加载了

测试了,这个bug在手机端已经修复了
回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表