3.7 KiB
3.7 KiB
RuneStateWindow 符文状态窗口
📋 功能概述
RuneStateWindow是一个用于显示当前穿戴符文状态的UI窗口,主要功能包括:
- 符文栏显示 - 根据当前穿戴装备显示符文列表
- 小丑牌动画 - 接收服务端符文执行记录后播放类似小丑牌的动画效果
🏗️ 文件结构
src/StarterPlayerScripts/UI/Windows/RuneStateWindow/
├── init.luau # 主窗口文件
└── RuneShow.luau # 符文显示组件
src/StarterPlayerScripts/ClientMain/
├── RuneExecutionClient.luau # 客户端接收符文执行记录
└── TestRuneStateWindow.luau # 测试脚本
🎮 使用方法
1. 打开符文状态窗口
-- 通过UIManager打开窗口
UIManager:OpenWindow("RuneStateWindow", {
runeData = {
{
runeName = "RuneFireDamage",
runeUniqueId = 1,
level = 5,
icon = "fire_icon"
},
{
runeName = "RuneIceCoffin",
runeUniqueId = 2,
level = 3,
icon = "ice_icon"
}
}
})
2. 接收符文执行记录
窗口会自动接收服务端发送的符文执行记录,并播放动画:
-- 服务端发送的数据格式
local executionRecords = {
{
runeName = "RuneFireDamage",
runeUniqueId = 1,
index = 1,
timestamp = tick(),
action = "Execute",
attributesBefore = {attack = 100, hp = 1000},
attributesAfter = {attack = 150, hp = 1000},
behaviorListBefore = {"Attack"},
behaviorListAfter = {"Attack", "FireDamage"},
nextIndex = 2
}
}
3. 测试功能
使用测试脚本可以快速验证功能:
- 按 R 键 - 打开符文状态窗口
- 按 T 键 - 模拟接收符文执行记录
- 按 C 键 - 关闭符文状态窗口
🎨 动画效果
小丑牌动画特点
- 金色光效 - 符文激活时显示金色发光效果
- 缩放动画 - 符文图标会放大并旋转
- 粒子效果 - 中心产生黄色粒子扩散效果
- 顺序播放 - 多个符文按执行顺序依次播放动画
动画参数
- 动画时长: 0.3秒
- 缩放比例: 1.5倍
- 旋转角度: 360度
- 颜色: 金色(#FFD700)和黄色(#FFFF00)
🔧 技术实现
核心组件
-
RuneStateWindow - 主窗口管理
- 管理符文执行记录队列
- 控制动画播放顺序
- 处理窗口生命周期
-
RuneShow - 符文显示组件
- 显示符文图标、名称、等级
- 处理符文激活动画
- 管理组件生命周期
-
RuneExecutionClient - 客户端接收器
- 监听服务端符文执行记录
- 转发数据到窗口组件
数据流程
服务端符文执行 → RemoteEvent发送 → 客户端接收 → 窗口处理 → 动画播放
🎯 扩展功能
可扩展的动画效果
- 音效支持 - 添加符文激活音效
- 特效增强 - 添加更多视觉特效
- 交互功能 - 点击符文查看详情
- 状态显示 - 显示符文冷却时间
自定义动画
可以通过修改CreateJokerCardEffect
方法来自定义动画效果:
function RuneStateWindow:CreateJokerCardEffect(runeItem, record)
-- 自定义动画逻辑
-- 可以添加更多特效、音效等
end
🐛 注意事项
- UI预制体 - 需要创建对应的UI预制体
ui_w_rune_state
- 符文数据 - 需要正确配置符文JSON数据
- 图标资源 - 需要上传对应的符文图标资源
- 性能优化 - 大量符文时注意动画性能
📝 更新日志
- v1.0.0 - 初始版本,支持基础符文显示和小丑牌动画
- 支持符文执行记录接收和播放
- 支持测试脚本快速验证功能