createCharacter method

  1. @override
int createCharacter(
  1. CharacterSettings3D settings,
  2. Vector3 position
)
override

Makes a character whose feet are at position; 0 when it cannot be made.

Implementation

@override
int createCharacter(CharacterSettings3D settings, Vector3 position) {
  if (_gone) return 0;
  final s = _characterSettings.ref;
  s
    ..radius = settings.radius
    ..halfHeight = settings.halfHeight
    ..maxSlopeAngle = settings.maxSlopeAngle
    ..mass = settings.mass
    ..maxStrength = settings.maxStrength
    ..padding = 0
    ..predictiveContactDistance = 0
    ..penetrationRecoverySpeed = 0
    ..layer = settings.layer
    ..innerBody = settings.innerBody
    ..enhancedInternalEdgeRemoval = false
    ..userData = settings.userData;
  s.up[0] = settings.up.x;
  s.up[1] = settings.up.y;
  s.up[2] = settings.up.z;
  _f
    ..[0] = position.x
    ..[1] = position.y
    ..[2] = position.z;
  final character = jj_character_create(handle, _characterSettings, _f);
  if (character != 0) _characters.add(character);
  return character;
}