Used to customize synchronization of variables in a script watched by a network view.
It is automatically determined if the variables being serialized should be sent or received, see example below for a better description. This depends on who owns the object, i.e. the owner sends and all others receive.
// This objects health information
var currentHealth : int;
function OnSerializeNetworkView(stream : BitStream,
info : NetworkMessageInfo) {
var health : int = 0;
if (stream.isWriting) {
health = currentHealth;
stream.Serialize(health);
} else {
stream.Serialize(health);
currentHealth = health;
}
}
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
public int currentHealth;
void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info) {
int health = 0;
if (stream.isWriting) {
health = currentHealth;
stream.Serialize(ref health);
} else {
stream.Serialize(ref health);
currentHealth = health;
}
}
}
import UnityEngine
import System.Collections
class example(MonoBehaviour):
public currentHealth as int
def OnSerializeNetworkView(stream as BitStream, info as NetworkMessageInfo):
health as int = 0
if stream.isWriting:
health = currentHealth
stream.Serialize(health)
else:
stream.Serialize(health)
currentHealth = health