In C or C++, we can write the value of a variable directly onto a byte array. 

```
int value = 3;
unsigned char array[100];
*(int*)(&array[10]) = value;

```

In C#, we also can do this by using `unsafe` and `fixed` keyword.

```
int value = 3;
byte[] array = new byte[100];
fixed(...) { ... }

```

However, Unity3D does not allow using `unsafe` nor `fixed`. In this case, what is the runtime cost-efficient way of doing it? I roughly guess it can be done with using a binary reader or writer class in .Net Core or .Net Framework, but I am not sure of it.