I think this would be cleaner for the texture:

```C#
input.ReadObject<Texture2D>(existingInstance != null ? existingInstance._texture : null)
```