My program doesn't have bugs. It just develops random features.
Types of Collision
Collision properties are mostly booleans, and fall roughly into two groups: Blocking properties (bBlockSomething) and Colliding properties (bCollideSomething). The difference between Blocking and Colliding is that Colliding actors only get a Touch() event when another actor collides with it; Blocking actors also prevent the other object from moving to that location. Actors can be made to do none, either, or both.
If an actor with bCollideActors = true is spawned on top of another actor with bCollideActors = true, Touch() will be called before PostBeginPlay(), and possibly before the other initialization functions as well. This can cause a lot of problems, especially if initialization code important to the actor's function is initialized in PostBeginPlay() to be used later in Touch().
An actor has to define some sort of shape which it uses to decide whether another actor has collided with it. In UT and prior versions of the engine, this was always a collision cylinder, an upright cylinder centered on the actor's location (the position vector in Movement->Location).
- Collision cylinder
- Collision actor properties:
- Static Mesh Collision Reference – An excellent document covering the details of collision.
Rbabiak: is there a way to make dynamic collision for a actor. Ie if I had a actor that was a animated door that I wanted block the players passage until at some time I play the animation on it of opening and then allow the player throught.
Tarquin: AFAIK you can change actor collision props on the fly – in fact I'm fairly sure I've seen it done on actors that turn themselves off by simply turning off their collision