But look's like it have some limitation, because after value 100 or something near it velocity of the body didn't increse even if I set value to 10000. ... How I should change speed of body?
Changing the CharacterController's various speed related properties are indeed the way to change the speed of the character. The force related properties define how fast the character can reach those speeds.
Some ideas:
-Is there some external force stopping the character from accelerating?
-Is the CharacterController.AirForce set low enough that it doesn't look like it increases much, even though it is?
-Has the CharacterController.Body.LinearDamping been explicitly set to a high value (it defaults to 0)?
-Can you replicate the behavior in the BEPUphysicsDemos?
And then I trying to Apply impulse using :
Vector3 sp = new Vector3(0, 9000, 0);
cc.Body.ApplyLinearImpulse(ref sp);
loooks like nothing happend. ... how to apply impulse properly?
The most likely case is that the character fell asleep. ApplyLinearImpulse(ref Vector3) is a function designed for low overhead usage in constraints and similar use cases, so it does not do extra logic to wake the entity up.
Some options:
1) After using ApplyLinearImpulse, call Entity.ActivityInformation.Activate() to force the character active.
2) Use ApplyImpulse instead of ApplyLinearImpulse. ApplyImpulse calls Activate for you.
3) Set the LinearVelocity field directly to the desired speed rather than applying impulses. Setting LinearVelocity is equivalent to applying a linear impulse to reach the target velocity. Setting LinearVelocity calls Activate for you.
It may also be the VerticalMotionConstraint counteracting the impulse. This constraint is only active when the character has traction, though, and the default configuration is too weak to stop an impulse of 9000.
Maybe setting direction :
Code:
Controller.HorizontalMotionConstraint.MovementDirection = new Vector2(SpeedVector.X, SpeedVector.Z);
is droping down impulse direction vectors?
The horizontal motion constraint will fight against any motion not in the MovementDirection, if that is what you are wondering. It won't fight against an impulse along the characters up/down axis, though; it's strictly for horizontal motion.