correct conversion of messages to binary (maybe)
parent
94333a389d
commit
e837b624cc
|
|
@ -65,7 +65,12 @@ namespace VelNet
|
||||||
|
|
||||||
protected override void ReceiveState(BinaryReader binaryReader)
|
protected override void ReceiveState(BinaryReader binaryReader)
|
||||||
{
|
{
|
||||||
Color newColor = binaryReader.ReadColor();
|
// Color newColor = binaryReader.ReadColor();
|
||||||
|
Color newColor;
|
||||||
|
newColor.r = binaryReader.ReadSingle();
|
||||||
|
newColor.g = binaryReader.ReadSingle();
|
||||||
|
newColor.b = binaryReader.ReadSingle();
|
||||||
|
newColor.a = binaryReader.ReadSingle();
|
||||||
if (newColor != color)
|
if (newColor != color)
|
||||||
{
|
{
|
||||||
rend.material.color = newColor;
|
rend.material.color = newColor;
|
||||||
|
|
|
||||||
|
|
@ -200,8 +200,8 @@ MonoBehaviour:
|
||||||
isSceneObject: 0
|
isSceneObject: 0
|
||||||
syncedComponents:
|
syncedComponents:
|
||||||
- {fileID: -4404668399269848200}
|
- {fileID: -4404668399269848200}
|
||||||
- {fileID: 7564913803199044469}
|
|
||||||
- {fileID: 1181612843795795320}
|
- {fileID: 1181612843795795320}
|
||||||
|
- {fileID: 7564913803199044469}
|
||||||
--- !u!114 &-4404668399269848200
|
--- !u!114 &-4404668399269848200
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -216,6 +216,7 @@ MonoBehaviour:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
networkObject: {fileID: 9102273340480352682}
|
networkObject: {fileID: 9102273340480352682}
|
||||||
serializationRateHz: 30
|
serializationRateHz: 30
|
||||||
|
hybridOnChangeCompression: 1
|
||||||
color: {r: 0, g: 0, b: 0, a: 0}
|
color: {r: 0, g: 0, b: 0, a: 0}
|
||||||
--- !u!114 &1181612843795795320
|
--- !u!114 &1181612843795795320
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
|
@ -248,6 +249,7 @@ MonoBehaviour:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
networkObject: {fileID: 9102273340480352682}
|
networkObject: {fileID: 9102273340480352682}
|
||||||
serializationRateHz: 60
|
serializationRateHz: 60
|
||||||
|
hybridOnChangeCompression: 1
|
||||||
useLocalTransform: 0
|
useLocalTransform: 0
|
||||||
teleportDistance: 0
|
teleportDistance: 0
|
||||||
teleportAngle: 0
|
teleportAngle: 0
|
||||||
|
|
|
||||||
|
|
@ -603,8 +603,6 @@ RectTransform:
|
||||||
- {fileID: 626742070}
|
- {fileID: 626742070}
|
||||||
- {fileID: 711524767}
|
- {fileID: 711524767}
|
||||||
- {fileID: 864104176}
|
- {fileID: 864104176}
|
||||||
- {fileID: 945446556}
|
|
||||||
- {fileID: 1843597586}
|
|
||||||
- {fileID: 948755938}
|
- {fileID: 948755938}
|
||||||
- {fileID: 545137760}
|
- {fileID: 545137760}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
|
|
@ -629,7 +627,7 @@ MonoBehaviour:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
velNetManager: {fileID: 1099803616}
|
velNetManager: {fileID: 1099803616}
|
||||||
userInput: {fileID: 626742069}
|
userInput: {fileID: 626742069}
|
||||||
sendInput: {fileID: 945446555}
|
sendInput: {fileID: 0}
|
||||||
roomInput: {fileID: 711524768}
|
roomInput: {fileID: 711524768}
|
||||||
messages: {fileID: 1894247854}
|
messages: {fileID: 1894247854}
|
||||||
messageBuffer: []
|
messageBuffer: []
|
||||||
|
|
@ -890,11 +888,11 @@ RectTransform:
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 1081889596}
|
- {fileID: 1081889596}
|
||||||
m_Father: {fileID: 244561620}
|
m_Father: {fileID: 244561620}
|
||||||
m_RootOrder: 10
|
m_RootOrder: 8
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 5, y: 165.7}
|
m_AnchoredPosition: {x: 5, y: 76.8}
|
||||||
m_SizeDelta: {x: 160, y: 30}
|
m_SizeDelta: {x: 160, y: 30}
|
||||||
m_Pivot: {x: 0, y: 0}
|
m_Pivot: {x: 0, y: 0}
|
||||||
--- !u!114 &545137761
|
--- !u!114 &545137761
|
||||||
|
|
@ -1953,149 +1951,6 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 927188572}
|
m_GameObject: {fileID: 927188572}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &945446554
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 945446556}
|
|
||||||
- component: {fileID: 945446558}
|
|
||||||
- component: {fileID: 945446557}
|
|
||||||
- component: {fileID: 945446555}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Message
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &945446555
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 945446554}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Navigation:
|
|
||||||
m_Mode: 3
|
|
||||||
m_WrapAround: 0
|
|
||||||
m_SelectOnUp: {fileID: 0}
|
|
||||||
m_SelectOnDown: {fileID: 0}
|
|
||||||
m_SelectOnLeft: {fileID: 0}
|
|
||||||
m_SelectOnRight: {fileID: 0}
|
|
||||||
m_Transition: 1
|
|
||||||
m_Colors:
|
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
|
||||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
|
||||||
m_ColorMultiplier: 1
|
|
||||||
m_FadeDuration: 0.1
|
|
||||||
m_SpriteState:
|
|
||||||
m_HighlightedSprite: {fileID: 0}
|
|
||||||
m_PressedSprite: {fileID: 0}
|
|
||||||
m_SelectedSprite: {fileID: 0}
|
|
||||||
m_DisabledSprite: {fileID: 0}
|
|
||||||
m_AnimationTriggers:
|
|
||||||
m_NormalTrigger: Normal
|
|
||||||
m_HighlightedTrigger: Highlighted
|
|
||||||
m_PressedTrigger: Pressed
|
|
||||||
m_SelectedTrigger: Selected
|
|
||||||
m_DisabledTrigger: Disabled
|
|
||||||
m_Interactable: 1
|
|
||||||
m_TargetGraphic: {fileID: 945446557}
|
|
||||||
m_TextComponent: {fileID: 1235343403}
|
|
||||||
m_Placeholder: {fileID: 1954037270}
|
|
||||||
m_ContentType: 0
|
|
||||||
m_InputType: 0
|
|
||||||
m_AsteriskChar: 42
|
|
||||||
m_KeyboardType: 0
|
|
||||||
m_LineType: 0
|
|
||||||
m_HideMobileInput: 0
|
|
||||||
m_CharacterValidation: 0
|
|
||||||
m_CharacterLimit: 0
|
|
||||||
m_OnEndEdit:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_OnValueChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
|
||||||
m_CustomCaretColor: 0
|
|
||||||
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
|
|
||||||
m_Text:
|
|
||||||
m_CaretBlinkRate: 0.85
|
|
||||||
m_CaretWidth: 1
|
|
||||||
m_ReadOnly: 0
|
|
||||||
m_ShouldActivateOnSelect: 1
|
|
||||||
--- !u!224 &945446556
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 945446554}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 1954037272}
|
|
||||||
- {fileID: 1235343401}
|
|
||||||
m_Father: {fileID: 244561620}
|
|
||||||
m_RootOrder: 7
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
|
||||||
m_AnchoredPosition: {x: 181.94519, y: 88}
|
|
||||||
m_SizeDelta: {x: 353.8904, y: 30}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!114 &945446557
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 945446554}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_RaycastTarget: 1
|
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_Type: 1
|
|
||||||
m_PreserveAspect: 0
|
|
||||||
m_FillCenter: 1
|
|
||||||
m_FillMethod: 4
|
|
||||||
m_FillAmount: 1
|
|
||||||
m_FillClockwise: 1
|
|
||||||
m_FillOrigin: 0
|
|
||||||
m_UseSpriteMesh: 0
|
|
||||||
m_PixelsPerUnitMultiplier: 1
|
|
||||||
--- !u!222 &945446558
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 945446554}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!1 &948755937
|
--- !u!1 &948755937
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -2132,7 +1987,7 @@ RectTransform:
|
||||||
- {fileID: 1840952814}
|
- {fileID: 1840952814}
|
||||||
- {fileID: 1992361063}
|
- {fileID: 1992361063}
|
||||||
m_Father: {fileID: 244561620}
|
m_Father: {fileID: 244561620}
|
||||||
m_RootOrder: 9
|
m_RootOrder: 7
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 1, y: 0}
|
m_AnchorMin: {x: 1, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 0}
|
m_AnchorMax: {x: 1, y: 0}
|
||||||
|
|
@ -2153,6 +2008,7 @@ MonoBehaviour:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
networkObject: {fileID: 948755940}
|
networkObject: {fileID: 948755940}
|
||||||
serializationRateHz: 30
|
serializationRateHz: 30
|
||||||
|
hybridOnChangeCompression: 1
|
||||||
text: {fileID: 948755941}
|
text: {fileID: 948755941}
|
||||||
--- !u!114 &948755940
|
--- !u!114 &948755940
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
|
@ -2671,85 +2527,6 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1154194181}
|
m_GameObject: {fileID: 1154194181}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1235343400
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1235343401}
|
|
||||||
- component: {fileID: 1235343402}
|
|
||||||
- component: {fileID: 1235343403}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Text
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &1235343401
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1235343400}
|
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 945446556}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
|
||||||
m_AnchoredPosition: {x: 0, y: -0.5}
|
|
||||||
m_SizeDelta: {x: -20, y: -13}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!222 &1235343402
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1235343400}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!114 &1235343403
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1235343400}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
|
||||||
m_RaycastTarget: 1
|
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_FontData:
|
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_FontSize: 14
|
|
||||||
m_FontStyle: 0
|
|
||||||
m_BestFit: 0
|
|
||||||
m_MinSize: 10
|
|
||||||
m_MaxSize: 40
|
|
||||||
m_Alignment: 0
|
|
||||||
m_AlignByGeometry: 0
|
|
||||||
m_RichText: 0
|
|
||||||
m_HorizontalOverflow: 1
|
|
||||||
m_VerticalOverflow: 0
|
|
||||||
m_LineSpacing: 1
|
|
||||||
m_Text:
|
|
||||||
--- !u!1 &1278634766
|
--- !u!1 &1278634766
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -3644,218 +3421,6 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1840952813}
|
m_GameObject: {fileID: 1840952813}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1843597585
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1843597586}
|
|
||||||
- component: {fileID: 1843597589}
|
|
||||||
- component: {fileID: 1843597588}
|
|
||||||
- component: {fileID: 1843597587}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Send
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &1843597586
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1843597585}
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 1852007163}
|
|
||||||
m_Father: {fileID: 244561620}
|
|
||||||
m_RootOrder: 8
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
|
||||||
m_AnchoredPosition: {x: 416.95, y: 88}
|
|
||||||
m_SizeDelta: {x: 94.1, y: 30}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!114 &1843597587
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1843597585}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Navigation:
|
|
||||||
m_Mode: 3
|
|
||||||
m_WrapAround: 0
|
|
||||||
m_SelectOnUp: {fileID: 0}
|
|
||||||
m_SelectOnDown: {fileID: 0}
|
|
||||||
m_SelectOnLeft: {fileID: 0}
|
|
||||||
m_SelectOnRight: {fileID: 0}
|
|
||||||
m_Transition: 1
|
|
||||||
m_Colors:
|
|
||||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
|
||||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
||||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
|
||||||
m_ColorMultiplier: 1
|
|
||||||
m_FadeDuration: 0.1
|
|
||||||
m_SpriteState:
|
|
||||||
m_HighlightedSprite: {fileID: 0}
|
|
||||||
m_PressedSprite: {fileID: 0}
|
|
||||||
m_SelectedSprite: {fileID: 0}
|
|
||||||
m_DisabledSprite: {fileID: 0}
|
|
||||||
m_AnimationTriggers:
|
|
||||||
m_NormalTrigger: Normal
|
|
||||||
m_HighlightedTrigger: Highlighted
|
|
||||||
m_PressedTrigger: Pressed
|
|
||||||
m_SelectedTrigger: Selected
|
|
||||||
m_DisabledTrigger: Disabled
|
|
||||||
m_Interactable: 1
|
|
||||||
m_TargetGraphic: {fileID: 1843597588}
|
|
||||||
m_OnClick:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls:
|
|
||||||
- m_Target: {fileID: 244561621}
|
|
||||||
m_TargetAssemblyTypeName: NetworkGUI, Assembly-CSharp
|
|
||||||
m_MethodName: HandleSend
|
|
||||||
m_Mode: 1
|
|
||||||
m_Arguments:
|
|
||||||
m_ObjectArgument: {fileID: 0}
|
|
||||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
|
||||||
m_IntArgument: 0
|
|
||||||
m_FloatArgument: 0
|
|
||||||
m_StringArgument:
|
|
||||||
m_BoolArgument: 0
|
|
||||||
m_CallState: 2
|
|
||||||
--- !u!114 &1843597588
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1843597585}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
||||||
m_RaycastTarget: 1
|
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
|
||||||
m_Type: 1
|
|
||||||
m_PreserveAspect: 0
|
|
||||||
m_FillCenter: 1
|
|
||||||
m_FillMethod: 4
|
|
||||||
m_FillAmount: 1
|
|
||||||
m_FillClockwise: 1
|
|
||||||
m_FillOrigin: 0
|
|
||||||
m_UseSpriteMesh: 0
|
|
||||||
m_PixelsPerUnitMultiplier: 1
|
|
||||||
--- !u!222 &1843597589
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1843597585}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!1 &1852007162
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1852007163}
|
|
||||||
- component: {fileID: 1852007165}
|
|
||||||
- component: {fileID: 1852007164}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Text
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!224 &1852007163
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1852007162}
|
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 1843597586}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
|
||||||
m_SizeDelta: {x: 0, y: 0}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!114 &1852007164
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1852007162}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
|
|
||||||
m_RaycastTarget: 1
|
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_FontData:
|
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_FontSize: 14
|
|
||||||
m_FontStyle: 0
|
|
||||||
m_BestFit: 0
|
|
||||||
m_MinSize: 10
|
|
||||||
m_MaxSize: 40
|
|
||||||
m_Alignment: 4
|
|
||||||
m_AlignByGeometry: 0
|
|
||||||
m_RichText: 1
|
|
||||||
m_HorizontalOverflow: 0
|
|
||||||
m_VerticalOverflow: 0
|
|
||||||
m_LineSpacing: 1
|
|
||||||
m_Text: Send
|
|
||||||
--- !u!222 &1852007165
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1852007162}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!1 &1894247852
|
--- !u!1 &1894247852
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -3935,85 +3500,6 @@ CanvasRenderer:
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 1894247852}
|
m_GameObject: {fileID: 1894247852}
|
||||||
m_CullTransparentMesh: 1
|
m_CullTransparentMesh: 1
|
||||||
--- !u!1 &1954037269
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1954037272}
|
|
||||||
- component: {fileID: 1954037271}
|
|
||||||
- component: {fileID: 1954037270}
|
|
||||||
m_Layer: 5
|
|
||||||
m_Name: Placeholder
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!114 &1954037270
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1954037269}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
|
|
||||||
m_RaycastTarget: 1
|
|
||||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
m_Maskable: 1
|
|
||||||
m_OnCullStateChanged:
|
|
||||||
m_PersistentCalls:
|
|
||||||
m_Calls: []
|
|
||||||
m_FontData:
|
|
||||||
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
|
||||||
m_FontSize: 14
|
|
||||||
m_FontStyle: 2
|
|
||||||
m_BestFit: 0
|
|
||||||
m_MinSize: 10
|
|
||||||
m_MaxSize: 40
|
|
||||||
m_Alignment: 0
|
|
||||||
m_AlignByGeometry: 0
|
|
||||||
m_RichText: 1
|
|
||||||
m_HorizontalOverflow: 0
|
|
||||||
m_VerticalOverflow: 0
|
|
||||||
m_LineSpacing: 1
|
|
||||||
m_Text: Enter text...
|
|
||||||
--- !u!222 &1954037271
|
|
||||||
CanvasRenderer:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1954037269}
|
|
||||||
m_CullTransparentMesh: 1
|
|
||||||
--- !u!224 &1954037272
|
|
||||||
RectTransform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1954037269}
|
|
||||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 945446556}
|
|
||||||
m_RootOrder: 0
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
|
||||||
m_AnchoredPosition: {x: 0, y: -0.5}
|
|
||||||
m_SizeDelta: {x: -20, y: -13}
|
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
|
||||||
--- !u!1 &1992361062
|
--- !u!1 &1992361062
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -4395,6 +3881,10 @@ PrefabInstance:
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: TestNetworkedGameObject
|
value: TestNetworkedGameObject
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8565720275311462453, guid: 6e4a023f70e01405e8b249a4488fe319, type: 3}
|
||||||
|
propertyPath: m_IsActive
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 8565720275311462455, guid: 6e4a023f70e01405e8b249a4488fe319, type: 3}
|
- target: {fileID: 8565720275311462455, guid: 6e4a023f70e01405e8b249a4488fe319, type: 3}
|
||||||
propertyPath: m_RootOrder
|
propertyPath: m_RootOrder
|
||||||
value: 6
|
value: 6
|
||||||
|
|
|
||||||
|
|
@ -79,12 +79,12 @@ namespace VelNet
|
||||||
VelNetPlayer.SendGroupMessage(this, group, (byte)index, message, reliable);
|
VelNetPlayer.SendGroupMessage(this, group, (byte)index, message, reliable);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ReceiveBytes(string identifier, byte[] message)
|
public void ReceiveBytes(byte componentIdx, byte[] message)
|
||||||
{
|
{
|
||||||
// send the message to the right component
|
// send the message to the right component
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
syncedComponents[int.Parse(identifier)].ReceiveBytes(message);
|
syncedComponents[componentIdx].ReceiveBytes(message);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@ namespace VelNet
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (IsMine)
|
if (IsMine && enabled)
|
||||||
{
|
{
|
||||||
byte[] newBytes = SendState();
|
byte[] newBytes = SendState();
|
||||||
if (hybridOnChangeCompression)
|
if (hybridOnChangeCompression)
|
||||||
|
|
@ -37,14 +37,15 @@ namespace VelNet
|
||||||
if (Time.timeAsDouble - lastSendTime > slowSendInterval || !BinaryWriterExtensions.BytesSame(lastSentBytes, newBytes))
|
if (Time.timeAsDouble - lastSendTime > slowSendInterval || !BinaryWriterExtensions.BytesSame(lastSentBytes, newBytes))
|
||||||
{
|
{
|
||||||
SendBytes(newBytes);
|
SendBytes(newBytes);
|
||||||
|
lastSendTime = Time.timeAsDouble;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SendBytes(newBytes);
|
SendBytes(newBytes);
|
||||||
|
lastSendTime = Time.timeAsDouble;
|
||||||
}
|
}
|
||||||
|
|
||||||
lastSendTime = Time.timeAsDouble;
|
|
||||||
lastSentBytes = newBytes;
|
lastSentBytes = newBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ namespace VelNet
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (IsMine)
|
if (IsMine && enabled)
|
||||||
{
|
{
|
||||||
using MemoryStream mem = new MemoryStream();
|
using MemoryStream mem = new MemoryStream();
|
||||||
using BinaryWriter writer = new BinaryWriter(mem);
|
using BinaryWriter writer = new BinaryWriter(mem);
|
||||||
|
|
@ -43,14 +43,15 @@ namespace VelNet
|
||||||
if (Time.timeAsDouble - lastSendTime > slowSendInterval || !BinaryWriterExtensions.BytesSame(lastSentBytes, newBytes))
|
if (Time.timeAsDouble - lastSendTime > slowSendInterval || !BinaryWriterExtensions.BytesSame(lastSentBytes, newBytes))
|
||||||
{
|
{
|
||||||
SendBytes(newBytes);
|
SendBytes(newBytes);
|
||||||
|
lastSendTime = Time.timeAsDouble;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SendBytes(newBytes);
|
SendBytes(newBytes);
|
||||||
|
lastSendTime = Time.timeAsDouble;
|
||||||
}
|
}
|
||||||
|
|
||||||
lastSendTime = Time.timeAsDouble;
|
|
||||||
lastSentBytes = newBytes;
|
lastSentBytes = newBytes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -412,7 +412,7 @@ namespace VelNet
|
||||||
{
|
{
|
||||||
if (players.ContainsKey(dm.senderId))
|
if (players.ContainsKey(dm.senderId))
|
||||||
{
|
{
|
||||||
players[dm.senderId]?.HandleMessage(dm); //todo
|
players[dm.senderId]?.HandleMessage(dm);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -431,7 +431,11 @@ namespace VelNet
|
||||||
|
|
||||||
for (int i = 0; i < sceneObjects.Length; i++)
|
for (int i = 0; i < sceneObjects.Length; i++)
|
||||||
{
|
{
|
||||||
sceneObjects[i].networkId = -1 + "-" + i;
|
if (sceneObjects[i].sceneNetworkId == 0)
|
||||||
|
{
|
||||||
|
Debug.LogError("Scene Network ID is 0. Make sure to assign one first.", sceneObjects[i]);
|
||||||
|
}
|
||||||
|
sceneObjects[i].networkId = -1 + "-" + sceneObjects[i].sceneNetworkId;
|
||||||
sceneObjects[i].owner = masterPlayer;
|
sceneObjects[i].owner = masterPlayer;
|
||||||
sceneObjects[i].isSceneObject = true; // needed for special handling when deleted
|
sceneObjects[i].isSceneObject = true; // needed for special handling when deleted
|
||||||
objects.Add(sceneObjects[i].networkId, sceneObjects[i]);
|
objects.Add(sceneObjects[i].networkId, sceneObjects[i]);
|
||||||
|
|
@ -483,13 +487,11 @@ namespace VelNet
|
||||||
Debug.Log("On client connect exception " + e);
|
Debug.Log("On client connect exception " + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Reads N bytes
|
/// <summary>
|
||||||
|
/// Runs in background clientReceiveThread; Listens for incoming data.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="stream"></param>
|
|
||||||
/// <param name="N"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
private static byte[] ReadExact(Stream stream, int N)
|
private static byte[] ReadExact(Stream stream, int N)
|
||||||
{
|
{
|
||||||
byte[] toReturn = new byte[N];
|
byte[] toReturn = new byte[N];
|
||||||
|
|
@ -517,20 +519,16 @@ namespace VelNet
|
||||||
{
|
{
|
||||||
socketConnection = new TcpClient(host, port);
|
socketConnection = new TcpClient(host, port);
|
||||||
socketConnection.NoDelay = true;
|
socketConnection.NoDelay = true;
|
||||||
|
// Get a stream object for reading
|
||||||
NetworkStream stream = socketConnection.GetStream();
|
NetworkStream stream = socketConnection.GetStream();
|
||||||
using BinaryReader reader = new BinaryReader(stream);
|
using BinaryReader reader = new BinaryReader(stream);
|
||||||
//now we are connected, so add a message to the queue
|
//now we are connected, so add a message to the queue
|
||||||
AddMessage(new ConnectedMessage());
|
AddMessage(new ConnectedMessage());
|
||||||
//Join("MyRoom");
|
|
||||||
//SendTo(MessageSendType.MESSAGE_OTHERS, Encoding.UTF8.GetBytes("Hello"));
|
|
||||||
//FormGroup("close", new List<uint> { 1 });
|
|
||||||
//SendToGroup("close", Encoding.UTF8.GetBytes("HelloGroup"));
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
// Get a stream object for reading
|
|
||||||
|
|
||||||
//read a byte
|
//read a byte
|
||||||
byte type = reader.ReadByte();
|
byte type = (byte)stream.ReadByte();
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
|
@ -538,7 +536,7 @@ namespace VelNet
|
||||||
case 0:
|
case 0:
|
||||||
{
|
{
|
||||||
LoginMessage m = new LoginMessage();
|
LoginMessage m = new LoginMessage();
|
||||||
m.userId = reader.ReadInt32(); //not really the sender...
|
m.userId = GetIntFromBytes(ReadExact(stream, 4)); //not really the sender...
|
||||||
AddMessage(m);
|
AddMessage(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -547,8 +545,8 @@ namespace VelNet
|
||||||
{
|
{
|
||||||
RoomsMessage m = new RoomsMessage();
|
RoomsMessage m = new RoomsMessage();
|
||||||
m.rooms = new List<ListedRoom>();
|
m.rooms = new List<ListedRoom>();
|
||||||
int N = reader.ReadInt32(); //the size of the payload
|
int N = GetIntFromBytes(ReadExact(stream, 4)); //the size of the payload
|
||||||
byte[] utf8data = reader.ReadBytes(N);
|
byte[] utf8data = ReadExact(stream, N);
|
||||||
string roomMessage = Encoding.UTF8.GetString(utf8data);
|
string roomMessage = Encoding.UTF8.GetString(utf8data);
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -572,9 +570,9 @@ namespace VelNet
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
JoinMessage m = new JoinMessage();
|
JoinMessage m = new JoinMessage();
|
||||||
m.userId = reader.ReadInt32();
|
m.userId = GetIntFromBytes(ReadExact(stream, 4));
|
||||||
int N = reader.ReadByte();
|
int N = stream.ReadByte();
|
||||||
byte[] utf8data = reader.ReadBytes(N); //the room name, encoded as utf-8
|
byte[] utf8data = ReadExact(stream, N); //the room name, encoded as utf-8
|
||||||
m.room = Encoding.UTF8.GetString(utf8data);
|
m.room = Encoding.UTF8.GetString(utf8data);
|
||||||
AddMessage(m);
|
AddMessage(m);
|
||||||
break;
|
break;
|
||||||
|
|
@ -583,9 +581,9 @@ namespace VelNet
|
||||||
case 3:
|
case 3:
|
||||||
{
|
{
|
||||||
DataMessage m = new DataMessage();
|
DataMessage m = new DataMessage();
|
||||||
m.senderId = reader.ReadInt32();
|
m.senderId = GetIntFromBytes(ReadExact(stream, 4));
|
||||||
int N = reader.ReadInt32(); //the size of the payload
|
int N = GetIntFromBytes(ReadExact(stream, 4)); //the size of the payload
|
||||||
m.data = reader.ReadBytes(N); //the message
|
m.data = ReadExact(stream, N); //the message
|
||||||
AddMessage(m);
|
AddMessage(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
@ -593,7 +591,7 @@ namespace VelNet
|
||||||
case 4:
|
case 4:
|
||||||
{
|
{
|
||||||
ChangeMasterMessage m = new ChangeMasterMessage();
|
ChangeMasterMessage m = new ChangeMasterMessage();
|
||||||
m.masterId = reader.ReadInt32(); //sender is the new master
|
m.masterId = GetIntFromBytes(ReadExact(stream, 4)); //sender is the new master
|
||||||
AddMessage(m);
|
AddMessage(m);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,93 +61,81 @@ namespace VelNet
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// These are generally things that come from the "owner" and should be enacted locally, where appropriate
|
/// These are generally things that come from the "owner" and should be enacted locally, where appropriate
|
||||||
///
|
///
|
||||||
/// Overall message encoding:
|
/// Message encoding:
|
||||||
/// uint16: numMessages
|
|
||||||
/// for m in numMessages
|
|
||||||
/// int32: message size (including message type)
|
|
||||||
/// byte: message type
|
/// byte: message type
|
||||||
/// byte[]: message
|
/// byte[]: message
|
||||||
|
///
|
||||||
|
/// The length of the byte[] for message is fixed according to the message type
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void HandleMessage(VelNetManager.DataMessage m)
|
public void HandleMessage(VelNetManager.DataMessage m)
|
||||||
{
|
{
|
||||||
using MemoryStream mem = new MemoryStream(m.data);
|
using MemoryStream mem = new MemoryStream(m.data);
|
||||||
using BinaryReader reader = new BinaryReader(mem);
|
using BinaryReader reader = new BinaryReader(mem);
|
||||||
|
|
||||||
ushort numMessages = reader.ReadUInt16();
|
|
||||||
|
|
||||||
for (int i = 0; i < numMessages; i++)
|
//individual message parameters separated by comma
|
||||||
|
VelNetManager.MessageType messageType = (VelNetManager.MessageType)reader.ReadByte();
|
||||||
|
|
||||||
|
switch (messageType)
|
||||||
{
|
{
|
||||||
//individual message parameters separated by comma
|
case VelNetManager.MessageType.ObjectSync: // sync update for an object I may own
|
||||||
int messageLength = reader.ReadInt32();
|
|
||||||
VelNetManager.MessageType messageType = (VelNetManager.MessageType)reader.ReadByte();
|
|
||||||
byte[] message = reader.ReadBytes(messageLength-1);
|
|
||||||
|
|
||||||
// make a separate reader to prevent malformed messages from messing us up
|
|
||||||
using MemoryStream messageMem = new MemoryStream(message);
|
|
||||||
using BinaryReader messageReader = new BinaryReader(messageMem);
|
|
||||||
|
|
||||||
switch (messageType)
|
|
||||||
{
|
{
|
||||||
case VelNetManager.MessageType.ObjectSync: // sync update for an object I may own
|
string objectKey = reader.ReadString();
|
||||||
|
byte componentIdx = reader.ReadByte();
|
||||||
|
int messageLength = reader.ReadInt32();
|
||||||
|
byte[] syncMessage = reader.ReadBytes(messageLength);
|
||||||
|
if (manager.objects.ContainsKey(objectKey))
|
||||||
{
|
{
|
||||||
string objectKey = messageReader.ReadString();
|
if (manager.objects[objectKey].owner == this)
|
||||||
string identifier = messageReader.ReadString();
|
|
||||||
string syncMessage = messageReader.ReadString();
|
|
||||||
byte[] messageBytes = Convert.FromBase64String(syncMessage);
|
|
||||||
if (manager.objects.ContainsKey(objectKey))
|
|
||||||
{
|
{
|
||||||
if (manager.objects[objectKey].owner == this)
|
manager.objects[objectKey].ReceiveBytes(componentIdx, syncMessage);
|
||||||
{
|
|
||||||
manager.objects[objectKey].ReceiveBytes(identifier, messageBytes);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
case VelNetManager.MessageType.TakeOwnership: // I'm trying to take ownership of an object
|
|
||||||
{
|
|
||||||
string networkId = messageReader.ReadString();
|
|
||||||
|
|
||||||
if (manager.objects.ContainsKey(networkId))
|
break;
|
||||||
{
|
|
||||||
manager.objects[networkId].owner = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case VelNetManager.MessageType.Instantiate: // I'm trying to instantiate an object
|
|
||||||
{
|
|
||||||
string networkId = messageReader.ReadString();
|
|
||||||
string prefabName = messageReader.ReadString();
|
|
||||||
if (manager.objects.ContainsKey(networkId))
|
|
||||||
{
|
|
||||||
break; //we already have this one, ignore
|
|
||||||
}
|
|
||||||
|
|
||||||
VelNetManager.SomebodyInstantiatedNetworkObject(networkId, prefabName, this);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case VelNetManager.MessageType.Destroy: // I'm trying to destroy a gameobject I own
|
|
||||||
{
|
|
||||||
string networkId = messageReader.ReadString();
|
|
||||||
|
|
||||||
VelNetManager.NetworkDestroy(networkId);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case VelNetManager.MessageType.DeleteSceneObjects: //deleted scene objects
|
|
||||||
{
|
|
||||||
int len = messageReader.ReadInt32();
|
|
||||||
for (int k = 1; k < len; k++)
|
|
||||||
{
|
|
||||||
VelNetManager.NetworkDestroy(messageReader.ReadString());
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
throw new ArgumentOutOfRangeException();
|
|
||||||
}
|
}
|
||||||
|
case VelNetManager.MessageType.TakeOwnership: // I'm trying to take ownership of an object
|
||||||
|
{
|
||||||
|
string networkId = reader.ReadString();
|
||||||
|
|
||||||
|
if (manager.objects.ContainsKey(networkId))
|
||||||
|
{
|
||||||
|
manager.objects[networkId].owner = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VelNetManager.MessageType.Instantiate: // I'm trying to instantiate an object
|
||||||
|
{
|
||||||
|
string networkId = reader.ReadString();
|
||||||
|
string prefabName = reader.ReadString();
|
||||||
|
if (manager.objects.ContainsKey(networkId))
|
||||||
|
{
|
||||||
|
break; //we already have this one, ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
VelNetManager.SomebodyInstantiatedNetworkObject(networkId, prefabName, this);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VelNetManager.MessageType.Destroy: // I'm trying to destroy a gameobject I own
|
||||||
|
{
|
||||||
|
string networkId = reader.ReadString();
|
||||||
|
|
||||||
|
VelNetManager.NetworkDestroy(networkId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case VelNetManager.MessageType.DeleteSceneObjects: //deleted scene objects
|
||||||
|
{
|
||||||
|
int len = reader.ReadInt32();
|
||||||
|
for (int k = 1; k < len; k++)
|
||||||
|
{
|
||||||
|
VelNetManager.NetworkDestroy(reader.ReadString());
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -165,6 +153,7 @@ namespace VelNet
|
||||||
writer.Write((byte)VelNetManager.MessageType.ObjectSync);
|
writer.Write((byte)VelNetManager.MessageType.ObjectSync);
|
||||||
writer.Write(obj.networkId);
|
writer.Write(obj.networkId);
|
||||||
writer.Write(componentIdx);
|
writer.Write(componentIdx);
|
||||||
|
writer.Write(data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
VelNetManager.SendToGroup(group, mem.ToArray(), reliable);
|
VelNetManager.SendToGroup(group, mem.ToArray(), reliable);
|
||||||
}
|
}
|
||||||
|
|
@ -176,6 +165,7 @@ namespace VelNet
|
||||||
writer.Write((byte)VelNetManager.MessageType.ObjectSync);
|
writer.Write((byte)VelNetManager.MessageType.ObjectSync);
|
||||||
writer.Write(obj.networkId);
|
writer.Write(obj.networkId);
|
||||||
writer.Write(componentIdx);
|
writer.Write(componentIdx);
|
||||||
|
writer.Write(data.Length);
|
||||||
writer.Write(data);
|
writer.Write(data);
|
||||||
VelNetManager.SendToRoom(mem.ToArray(), false, reliable);
|
VelNetManager.SendToRoom(mem.ToArray(), false, reliable);
|
||||||
}
|
}
|
||||||
|
|
@ -190,6 +180,7 @@ namespace VelNet
|
||||||
{
|
{
|
||||||
writer.Write(o);
|
writer.Write(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
VelNetManager.SendToRoom(mem.ToArray());
|
VelNetManager.SendToRoom(mem.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -200,7 +191,7 @@ namespace VelNet
|
||||||
if (!manager.objects.ContainsKey(networkId) || manager.objects[networkId].owner != this || !isLocal) return;
|
if (!manager.objects.ContainsKey(networkId) || manager.objects[networkId].owner != this || !isLocal) return;
|
||||||
|
|
||||||
// send to all, which will make me delete as well
|
// send to all, which will make me delete as well
|
||||||
|
|
||||||
using MemoryStream mem = new MemoryStream();
|
using MemoryStream mem = new MemoryStream();
|
||||||
using BinaryWriter writer = new BinaryWriter(mem);
|
using BinaryWriter writer = new BinaryWriter(mem);
|
||||||
writer.Write((byte)VelNetManager.MessageType.Destroy);
|
writer.Write((byte)VelNetManager.MessageType.Destroy);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue