You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Runtime修改KCC速度异常:SetKinematicSpeed函数失效求助

Runtime修改KCC运动控制器速度无效:SetKinematicSpeed调用后速度被重置为默认值

问题详情

尝试在运行时调用SetKinematicSpeed(FP._0)修改KCC(运动控制器)的移动速度,但完全没有效果——即使将速度设为0,物体仍保持恒定运动。进一步观察发现,每帧调用该函数前,速度值都会被自动重置为资源默认值8,即便调用后临时显示为0。此外,KCC插件官方手册中未提及运行时修改速度的相关说明。

代码示例

当前使用的设置速度代码:

FPVector2 moveVec = tgt - tf->Position.XZ;
kcc->SetKinematicSpeed(FP._0);
kcc->SetInputDirection(moveVec.XOY);

尝试过的方案

曾考虑直接修改KCC设置资源,但感觉并非最优解:

frame.FindAsset(filter.KCharController->Settings).Processors... -> EnvironmentProcessor -> KinematicSpeed = s;

解决方案

问题根源在于SetKinematicSpeed仅临时设置输入速度,而KCC每帧会从资源配置中读取默认速度值覆盖该设置。正确的做法是直接修改当前KCC实例的EnvironmentProcessor参数,操作实例的运行时数据而非全局资源:

// 获取当前KCC实例的EnvironmentProcessor
var envProcessor = kcc->GetProcessor<EnvironmentProcessor>();
if (envProcessor != nullptr)
{
    // 设置目标速度,这里设为0
    envProcessor->KinematicSpeed = FP._0;
}

说明

  • 这种方式直接修改的是当前KCC实例的处理器运行时参数,不会被资源默认值覆盖
  • 无需修改全局资源配置,避免影响其他使用相同KCC设置的对象

内容的提问来源于stack exchange,提问作者Brayden Rudisill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 14:12:06