描述
setSlopeLimit调用没有生效,因为我们需求是在角色行走和奔跑时候这个SlopeLimit是不一样的
原因
- 源代码已经有提示了
/**
\brief Sets the slope limit.
\note This feature can not be enabled at runtime, i.e. if the slope limit is zero when creating the CCT
(which disables the feature) then changing the slope limit at runtime will not have any effect, and the call
will be ignored.
\param[in] slopeLimit The slope limit for the controller.
@see PxControllerDesc.slopeLimit
*/
virtual void setSlopeLimit(PxF32 slopeLimit) =0;
- 跟设计有关
看capsule的代码
virtual void setSlopeLimit(PxF32 slopeLimit) { if(slopeLimit>0.0f)
mUserParams.mSlopeLimit = slopeLimit;}
具体估计还要深究一下运行时参数的应用,猜想这个参数设置了之后只是在某个初始化时候就设定了,运行时不方便随时修改
解决方案
就目前情况来看,可以重新创建CCT