/// <summary> /// Because <see cref="FiredProjectile"/> are often a High Speed Rigid body, we force the RigidBody interpolation mode to Interpolate /// </summary> private static InteractiveObjectBoxLogicColliderDefinitionStruct BuildBoxColliderDefinition(FiredProjectileDefinition FiredProjectileDefinition) { InteractiveObjectBoxLogicColliderDefinitionStruct InteractiveObjectBoxLogicColliderDefinitionStruct = FiredProjectileDefinition.InteractiveObjectBoxLogicColliderDefinition; InteractiveObjectBoxLogicColliderDefinitionStruct.RigidbodyInterpolation = RigidbodyInterpolation.Extrapolate; InteractiveObjectBoxLogicColliderDefinitionStruct.Enabled = true; return InteractiveObjectBoxLogicColliderDefinitionStruct; }
public void CreateLogicCollider(InteractiveObjectBoxLogicColliderDefinitionStruct InteractiveObjectBoxLogicColliderDefinitionStruct, int layer = 0) { if (InteractiveObjectBoxLogicColliderDefinitionStruct.Enabled) { var LogicColliderObject = InstanciateLogicCollider(layer); LogicCollider = LogicColliderObject.AddComponent <BoxCollider>(); LogicCollider.isTrigger = true; ((BoxCollider)LogicCollider).center = InteractiveObjectBoxLogicColliderDefinitionStruct.LocalCenter; ((BoxCollider)LogicCollider).size = InteractiveObjectBoxLogicColliderDefinitionStruct.LocalSize; this.AddRigidBodyIfNecessary(InteractiveObjectBoxLogicColliderDefinitionStruct.HasRigidBody, LogicColliderObject, InteractiveObjectBoxLogicColliderDefinitionStruct.RigidbodyInterpolation); } }