void OnSerializeNetworkView(BitStream stream, NetworkMessageInfo info)
{
NetworkUser U;
int ActiveMask = 0;
int PlayerID = 0;
Vector3 PlayerPosition = Vector3.zero;
float xRotation = 0;
float yRotation = 0;
Vector3 PlayerSpeed = Vector3.zero;
int PlayerInput = 0;
int PlayerState = 0;
int AnimationIndex = 0;
if (stream.isWriting && Network.isServer)
{
for (int i = 0; i < NetworkUser.MAX_NETWORK_USERS - 1; i++)
{
ActiveMask |= (NetworkUser.Get(i).playerObject != null) ? (1<<i) : 0;
}
}
stream.Serialize(ref ActiveMask);
for (int i = 0;i<NetworkUser.MAX_NETWORK_USERS-1; i++)
{
if ((ActiveMask & (1<<i))==0)
continue;
if (stream.isWriting && Network.isServer)
{
U = NetworkUser.Get(i);
PlayerID = i;
PlayerObject PO = U.playerObject;
PlayerPosition = PO.transform.position;
xRotation = U.sUser.xRotation;
yRotation = U.sUser.yRotation;
PlayerSpeed = U.sUser.moveSpeed;
PlayerInput = (int)U.sUser.input;
PlayerState = (int)U.sUser.CurState;
int AnimationTime = (int)((Time.time-U.sUser.AnimationTime)*10000);
AnimationIndex = ((AnimationTime&0xFFFF)<<16) | (U.sUser.AnimationIndex & 0xFFFF);
}
stream.Serialize(ref PlayerID);
stream.Serialize(ref PlayerPosition);
stream.Serialize(ref xRotation);
stream.Serialize(ref yRotation);
stream.Serialize(ref PlayerSpeed);
stream.Serialize(ref PlayerInput);
stream.Serialize(ref PlayerState);
stream.Serialize(ref AnimationIndex);
if (stream.isReading && Network.isClient)
{
if (PlayerID < 0 || PlayerID > NetworkUser.MAX_NETWORK_USERS)
{
CGDebug.LogWarning("OnSerializeNetworkView: received wrong playerID: "+PlayerID);
break;
}
U = NetworkUser.Get(PlayerID);
if (U.state == ENetworkUserState.Inactive)
{
CGDebug.LogWarning("OnSerializeNetworkView: received data for inactive player: "+PlayerID);
continue;
}
if (U.playerObject == null )
{
CGDebug.LogWarning("OnSerializeNetworkView: received data, but playerobject doesn't exist : "+PlayerID);
continue;
}
U.playerObject.AddSnapShot(info.timestamp,PlayerPosition,xRotation,yRotation,PlayerSpeed,PlayerInput,PlayerState,AnimationIndex);
}
}
}
unity——传数组
最新推荐文章于 2023-11-23 16:53:37 发布