public override unsafe FakeStruct LoadFromObject(Component com, DataBuffer buffer) { var obj = com as EdgeCollider2D; if (obj == null) { return(null); } FakeStruct fake = new FakeStruct(buffer, EdgeColliderData.ElementSize); EdgeColliderData *ec = (EdgeColliderData *)fake.ip; if (obj.sharedMaterial != null) { ec->sharedMaterial = buffer.AddData(obj.sharedMaterial.name); } ec->offset = obj.offset; ec->usedByEffector = obj.usedByEffector; ec->isTrigger = obj.isTrigger; ec->density = obj.density; ec->edgeRadius = obj.edgeRadius; if (obj.points != null) { ec->points = buffer.AddArray <Vector2>(obj.points); } return(fake); }
public unsafe override void LoadToComponent(FakeStruct fake, Component game, FakeStruct main) { EdgeColliderData *data = (EdgeColliderData *)fake.ip; var obj = game.GetComponent <EdgeCollider2D>(); if (obj == null) { return; } obj.points = fake.buffer.GetArray <Vector2>(data->points); obj.offset = data->offset; obj.usedByEffector = data->usedByEffector; obj.isTrigger = data->isTrigger; obj.density = data->density; obj.edgeRadius = data->edgeRadius; string mat = fake.buffer.GetData(data->sharedMaterial) as string; if (mat != null) { obj.sharedMaterial = new PhysicsMaterial2D(mat); } }