Давно хотел разобраться, как происходит смена обстановки на 3 стадии Фреи.
В общем, это реализовано через "состояния зоны".
Engine.ZoneInfo:
PHP код:
//-----------------------------------------------------------------------------
// Zone State
// by elsacred on 2009.10.16
const MAX_ZONE_STATE_NUM = 10;
struct native ZoneStateFog
{
var() int ZoneState; // 1 ~ 10 »зАМ
var() color DistanceFogColor;
var() float DistanceFogStart;
var() float DistanceFogEnd;
var() float DistanceFogBlendTime;
};
var(ZoneState) bool bUseZoneState;
var(ZoneState) int CurZoneState;
var(ZoneState) array<ZoneStateFog> StateFog;
var int ExZoneState;
Engine.StaticMeshActor:
PHP код:
var() array<int> ZoneRenderState;
То есть, для зоны прописываются возможные состояния, а для статикмеша номера, при которых он виден.
К сожалению, это влияет только на видимость, но не на коллизию