怎么删除特效
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-29 23:31:57 |
👁️ 阅读: 18
删除特效需要根据不同的情况使用对应的函数:
## 1. 删除玩家身上的特效
```lua
-- actorID: 玩家ID
-- sfxID: 特效ID
SL:RmvActorEffect(actorID, sfxID)
```
## 2. 删除UI特效
```lua
-- widget: 特效控件对象
GUI:Effect_stop(widget, frameIndex, act, dir)
```
## 3. 特效播放完成后自动删除(通过回调)
```lua
-- 设置特效播放完成回调
GUI:Effect_addOnCompleteEvent(widget, function()
-- 播放完成后执行清理操作
GUI:removeFromParent(widget)
end)
```
## 使用示例
```lua
-- 假设要删除玩家ID为1001身上的特效ID为2001
local playerID = 1001
local effectID = 2001
SL:RmvActorEffect(playerID, effectID)
-- 删除UI特效控件
local effectWidget = GUI:getChildByName(parent, "effect_name")
if GUI:Win_IsNotNull(effectWidget) then
GUI:Effect_stop(effectWidget, 0, 0, 0)
GUI:removeFromParent(effectWidget)
end
```
**注意:** 删除特效前最好先检查控件是否存在,避免空指针错误。
← 返回问答库