Gah - a solution with more questions. – EntropicLqd

Legacy:Collision

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search

Collision is all about the Unreal engine deciding when one actor is touching another, and what to do about it if it is. OCD gives technical lowdown of object collision detection.

Collision properties are under Actor/Collision: all Actors inherit them, even those that don't need it.

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().

Collision Shape

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).

Related Topics

External Links

Discussion

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