When you do tempItem = item you are only assigning the reference value or variable item to the variable tempItem. If you want to copy the members of item into tempItem, at runtime in your standalone game, you'll need to either do a deep or a swallow copy of the object members. Or simply said, to copy each member one by one. Note that in the editor environment, but not in your standalone, you might make use of Code (CSharp): UnityEditorInternal.ComponentUtility.CopyComponent(component); UnityEditorInternal.ComponentUtility.PasteComponentAsNew(_targetGO);