I suppose that in Hierarchy you dragged the correct GameObjects to those variables (that is the GOs that you have inside the scene, and not a plain prefab from your Project), so it could be possible that your weapons aren’t a single gameObject but contain children for the meshes/bones, so you can try to use SetActiveRecursively() instead of setting active only on the root objects (because of course it only acts on the root object itself and not on its children).