updated samples, autoconnect to server on enable/disable, auto-login option, add bool for players that were already in room when you joined

main
Anton Franzluebbers 2022-07-19 16:31:43 -04:00
parent 3154fc5094
commit efed5c3d14
74 changed files with 949 additions and 564 deletions

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 009dc4ba29f14b649beb8c3eaad89f15 guid: dc0ae145afb98164493d097e29dfb3bd
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 009dc4ba29f14b649beb8c3eaad89f15 guid: 18b28d1150d229647ae76efe2bea95f8
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,6 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: dda4edde45d871c4c9cc53849f3b62c7 guid: f8bb9027566930042942da486c1e29e0
folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -633,8 +633,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7a7db5bc792cd471dbd8039664359eee, type: 3} m_Script: {fileID: 11500000, guid: 7a7db5bc792cd471dbd8039664359eee, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
autoConnect: 1
autoRejoin: 0
userInput: {fileID: 626742069} userInput: {fileID: 626742069}
sendInput: {fileID: 0} sendInput: {fileID: 0}
roomInput: {fileID: 711524768} roomInput: {fileID: 711524768}
@ -2524,6 +2522,9 @@ MonoBehaviour:
port: 5000 port: 5000
udpConnected: 0 udpConnected: 0
userid: -1 userid: -1
debugMessages: 1
autoLogin: 1
onlyConnectToSameVersion: 1
connected: 0 connected: 0
prefabs: prefabs:
- {fileID: 9102273340480352682, guid: d4158ab9c4a204cdbba28d3273fc1fb3, type: 3} - {fileID: 9102273340480352682, guid: d4158ab9c4a204cdbba28d3273fc1fb3, type: 3}

View File

@ -123,7 +123,7 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &516411417 --- !u!1 &561771045
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -131,104 +131,54 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 516411421} - component: {fileID: 561771047}
- component: {fileID: 516411420} - component: {fileID: 561771046}
- component: {fileID: 516411419}
- component: {fileID: 516411418}
m_Layer: 0 m_Layer: 0
m_Name: Main Camera m_Name: VelNet Manager
m_TagString: MainCamera m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &516411418 --- !u!114 &561771046
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417} m_GameObject: {fileID: 561771045}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 233344de094f11341bdb834d564708dc, type: 3} m_Script: {fileID: 11500000, guid: 233344de094f11341bdb834d564708dc, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
host: 127.0.0.1 host: vn.ugavel.com
port: 80 port: 5000
udpConnected: 0 udpConnected: 0
userid: -1 userid: -1
room: debugMessages: 1
autoLogin: 1
onlyConnectToSameVersion: 0
connected: 0 connected: 0
prefabs: [] prefabs: []
sceneObjects: [] sceneObjects: []
deletedSceneObjects: [] deletedSceneObjects: []
--- !u!81 &516411419 --- !u!4 &561771047
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417}
m_Enabled: 1
--- !u!20 &516411420
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &516411421
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417} m_GameObject: {fileID: 561771045}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &756322628 --- !u!1 &951053497
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -236,8 +186,8 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 756322630} - component: {fileID: 951053499}
- component: {fileID: 756322629} - component: {fileID: 951053498}
m_Layer: 0 m_Layer: 0
m_Name: Directional Light m_Name: Directional Light
m_TagString: Untagged m_TagString: Untagged
@ -245,13 +195,13 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!108 &756322629 --- !u!108 &951053498
Light: Light:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756322628} m_GameObject: {fileID: 951053497}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 10 serializedVersion: 10
m_Type: 1 m_Type: 1
@ -307,17 +257,238 @@ Light:
m_UseViewFrustumForShadowCasterCull: 1 m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0 m_ShadowRadius: 0
m_ShadowAngle: 0 m_ShadowAngle: 0
--- !u!4 &756322630 --- !u!4 &951053499
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756322628} m_GameObject: {fileID: 951053497}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &958953873
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 958953877}
- component: {fileID: 958953876}
- component: {fileID: 958953875}
- component: {fileID: 958953874}
- component: {fileID: 958953879}
- component: {fileID: 958953878}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &958953874
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &958953875
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &958953876
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &958953877
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &958953878
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3f1f9b0bbd93a484a987c51f1107ebe5, type: 3}
m_Name:
m_EditorClassIdentifier:
networkObject: {fileID: 958953879}
serializationRateHz: 30
hybridOnChangeCompression: 1
useLocalTransform: 0
teleportDistance: 0
teleportAngle: 0
--- !u!114 &958953879
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5515094c5c544b6b8ed7fd51a86548d4, type: 3}
m_Name:
m_EditorClassIdentifier:
ownershipLocked: 0
networkId:
sceneNetworkId: 100
prefabName:
isSceneObject: 1
syncedComponents:
- {fileID: 958953878}
--- !u!1 &1615517332
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1615517335}
- component: {fileID: 1615517334}
- component: {fileID: 1615517333}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1615517333
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1615517332}
m_Enabled: 1
--- !u!20 &1615517334
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1615517332}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1615517335
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1615517332}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2e6e0ddeb76e51b46afc0f0a43386ff2 guid: 3e0da379b7e26cf4384f5cdff10f4fda
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cd6dd1d4e81bce64faaf29eedf9d2a63
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,22 @@
using UnityEngine;
using VelNet;
public class CustomMessageTest : MonoBehaviour
{
private void Start()
{
VelNetManager.OnJoinedRoom += _ =>
{
byte[] testPacket = { 244 };
VelNetManager.SendCustomMessage(testPacket, true, true, false);
};
VelNetManager.CustomMessageReceived += (senderId, dataWithCategory) =>
{
if (dataWithCategory[0] == 244)
{
Debug.Log($"Received test packet from {senderId}");
}
};
}
}

View File

@ -8,9 +8,6 @@ namespace VelNet
{ {
public class NetworkGUI : MonoBehaviour public class NetworkGUI : MonoBehaviour
{ {
public bool autoConnect = true;
public bool autoRejoin = true;
public InputField userInput; public InputField userInput;
public InputField sendInput; public InputField sendInput;
public InputField roomInput; public InputField roomInput;
@ -40,7 +37,7 @@ namespace VelNet
{ {
if (VelNetManager.IsConnected) if (VelNetManager.IsConnected)
{ {
VelNetManager.GetRoomData("0"); VelNetManager.GetRoomData(VelNetManager.Room);
} }
} }
@ -62,44 +59,6 @@ namespace VelNet
{ {
comms = FindObjectOfType<DissonanceComms>(); comms = FindObjectOfType<DissonanceComms>();
microphones.AddOptions(new List<string>(Microphone.devices)); microphones.AddOptions(new List<string>(Microphone.devices));
if (autoConnect)
{
AutoJoin();
}
}
private void AutoJoin()
{
VelNetManager.OnConnectedToServer += Login;
void Login()
{
if (!autoRejoin)
{
VelNetManager.OnConnectedToServer -= Login;
}
HandleLogin();
VelNetManager.OnLoggedIn += JoinRoom;
void JoinRoom()
{
HandleJoin();
VelNetManager.OnLoggedIn -= JoinRoom;
}
}
}
private void Update()
{
if (autoRejoin)
{
if (!VelNetManager.IsConnected)
{
AutoJoin();
}
}
} }
public void handleMicrophoneSelection() public void handleMicrophoneSelection()

View File

@ -16,11 +16,11 @@ public class RPCTest : NetworkComponent
private void TestRPC() private void TestRPC()
{ {
Debug.LogError("RPC RECEIVED!"); Debug.Log("RPC RECEIVED!");
} }
public override void ReceiveBytes(byte[] message) public override void ReceiveBytes(byte[] message)
{ {
Debug.LogError("WOW. BYTES"); Debug.Log("WOW. BYTES");
} }
} }

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: d1b34f106c04378428823df374b0e07c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 112000000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,34 +0,0 @@
using UnityEngine;
using VelNet;
public class test : MonoBehaviour
{
// Start is called before the first frame update
private void Start()
{
VelNetManager.OnJoinedRoom += roomName =>
{
Debug.Log("VelNet room joined!!!!!: " + roomName);
//VelNetManager.GetRoomData(roomName);
byte[] testpacekt = new[] { (byte)244 };
VelNetManager.SendCustomMessage(testpacekt, true, true, false);
};
VelNetManager.CustomMessageReceived += (senderId, dataWithCategory) =>
{
//customPacketReceived(senderId, dataWithCategory);
if (dataWithCategory[0] == (byte)244)
{
Debug.Log("received test packet");
return;
}
;
};
}
// Update is called once per frame
void Update()
{
}
}

View File

@ -1,191 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &1148318672
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1148318674}
- component: {fileID: 1148318673}
- component: {fileID: 1148318675}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1148318673
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1148318672}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 233344de094f11341bdb834d564708dc, type: 3}
m_Name:
m_EditorClassIdentifier:
host: velnet-lts.ugavel.com
port: 5000
udpConnected: 0
userid: -1
connected: 0
prefabs:
- {fileID: 9102273340480352682, guid: d4158ab9c4a204cdbba28d3273fc1fb3, type: 3}
- {fileID: 3951900052977689805, guid: 6e4a023f70e01405e8b249a4488fe319, type: 3}
sceneObjects: []
deletedSceneObjects: []
--- !u!4 &1148318674
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1148318672}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 297.37976, y: 241.59624, z: -3.2564697}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1148318675
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1148318672}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea1fe0eb58e4184bbb2edcc99c51119, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@ -35,6 +35,7 @@ namespace VelNet
/// <summary> /// <summary>
/// This may be empty if it's not a prefab (scene object) /// This may be empty if it's not a prefab (scene object)
/// </summary> /// </summary>
[Tooltip("For spawnable prefab objects")]
public string prefabName; public string prefabName;
public bool isSceneObject; public bool isSceneObject;

View File

@ -139,11 +139,5 @@ namespace VelNet
); );
} }
} }
[VelNetRPC]
private void Test()
{
}
} }
} }

View File

@ -0,0 +1,20 @@
using UnityEngine;
namespace VelNet
{
public static class VelNetLogger
{
public static void Info(string message, Object context = null)
{
if (VelNetManager.instance != null && VelNetManager.instance.debugMessages)
{
Debug.Log($"[VelNet] {message}", context);
}
}
public static void Error(string message, Object context = null)
{
Debug.LogError($"[VelNet] {message}", context);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 38bfd5f9fb924b7bb82a7a5e4fc09c1c
timeCreated: 1658256074

View File

@ -11,7 +11,6 @@ using System.IO;
namespace VelNet namespace VelNet
{ {
/// <summary>Used to flag methods as remote-callable.</summary> /// <summary>Used to flag methods as remote-callable.</summary>
public class VelNetRPC : Attribute public class VelNetRPC : Attribute
{ {
@ -70,6 +69,15 @@ namespace VelNet
private Thread clientReceiveThreadUDP; private Thread clientReceiveThreadUDP;
public int userid = -1; public int userid = -1;
[Tooltip("Sends debug messages about connection and join events")]
public bool debugMessages;
[Tooltip("Automatically logs in with app name and hash of device id after connecting")]
public bool autoLogin = true;
[Tooltip("Uses the version number in the login to prevent crosstalk between different app versions")]
public bool onlyConnectToSameVersion;
public readonly Dictionary<int, VelNetPlayer> players = new Dictionary<int, VelNetPlayer>(); public readonly Dictionary<int, VelNetPlayer> players = new Dictionary<int, VelNetPlayer>();
#region Callbacks #region Callbacks
@ -88,8 +96,9 @@ namespace VelNet
/// <summary> /// <summary>
/// Somebody else just joined our room /// Somebody else just joined our room
/// bool is true when this is a join message for someone that was already in the room when we joined it
/// </summary> /// </summary>
public static Action<VelNetPlayer> OnPlayerJoined; public static Action<VelNetPlayer, bool> OnPlayerJoined;
/// <summary> /// <summary>
/// Somebody else just left our room /// Somebody else just left our room
@ -177,6 +186,11 @@ namespace VelNet
{ {
public string room; public string room;
public readonly List<(int, string)> members = new List<(int, string)>(); public readonly List<(int, string)> members = new List<(int, string)>();
public override string ToString()
{
return room + "\n" + string.Join("\n", members.Select(m => $"{m.Item1}\t{m.Item2}"));
}
} }
public class JoinMessage : Message public class JoinMessage : Message
@ -198,7 +212,7 @@ namespace VelNet
public class YouJoinedMessage : Message public class YouJoinedMessage : Message
{ {
public List<int> ids; public List<int> playerIds;
public string room; public string room;
} }
@ -217,27 +231,35 @@ namespace VelNet
{ {
} }
private int maxUnreadMessages = 1000; private const int maxUnreadMessages = 1000;
public readonly List<Message> receivedMessages = new List<Message>(); private readonly List<Message> receivedMessages = new List<Message>();
private void Awake() private void Awake()
{ {
if (instance != null) SceneManager.sceneLoaded += (_, _) =>
{
Debug.LogError("Multiple NetworkManagers detected! Bad!", this);
}
instance = this;
SceneManager.sceneLoaded += (scene, mode) =>
{ {
// add all local network objects // add all local network objects
sceneObjects = FindObjectsOfType<NetworkObject>().Where(o => o.isSceneObject).ToArray(); sceneObjects = FindObjectsOfType<NetworkObject>().Where(o => o.isSceneObject).ToArray();
}; };
}
private void OnEnable()
{
if (instance != null)
{
VelNetLogger.Error("Multiple NetworkManagers detected! Bad!", this);
}
instance = this;
ConnectToServer(); ConnectToServer();
} }
private void OnDisable()
{
DisconnectFromServer();
instance = null;
}
private void AddMessage(Message m) private void AddMessage(Message m)
{ {
bool added = false; bool added = false;
@ -257,7 +279,7 @@ namespace VelNet
} }
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString());
} }
} }
@ -272,6 +294,7 @@ namespace VelNet
{ {
case ConnectedMessage msg: case ConnectedMessage msg:
{ {
VelNetLogger.Info("Connected to server.");
try try
{ {
OnConnectedToServer?.Invoke(); OnConnectedToServer?.Invoke();
@ -279,7 +302,15 @@ namespace VelNet
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString());
}
if (autoLogin)
{
Login(
onlyConnectToSameVersion ? $"{Application.productName}_{Application.version}" : $"{Application.productName}",
Hash128.Compute(SystemInfo.deviceUniqueIdentifier).ToString()
);
} }
break; break;
@ -288,12 +319,11 @@ namespace VelNet
{ {
if (userid == lm.userId) if (userid == lm.userId)
{ {
Debug.Log("Received duplicate login message " + userid); VelNetLogger.Error("Received duplicate login message " + userid);
return;
} }
userid = lm.userId; userid = lm.userId;
Debug.Log("Joined server " + userid); VelNetLogger.Info("Logged in: " + userid);
try try
{ {
@ -302,7 +332,7 @@ namespace VelNet
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
//start the udp thread //start the udp thread
@ -314,6 +344,7 @@ namespace VelNet
} }
case RoomsMessage rm: case RoomsMessage rm:
{ {
VelNetLogger.Info($"Received rooms:\n{rm}");
try try
{ {
RoomsReceived?.Invoke(rm); RoomsReceived?.Invoke(rm);
@ -321,13 +352,14 @@ namespace VelNet
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
break; break;
} }
case RoomDataMessage rdm: case RoomDataMessage rdm:
{ {
VelNetLogger.Info($"Received room data:\n{rdm}");
try try
{ {
RoomDataReceived?.Invoke(rdm); RoomDataReceived?.Invoke(rdm);
@ -335,19 +367,21 @@ namespace VelNet
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
break; break;
} }
case YouJoinedMessage jm: case YouJoinedMessage jm:
{ {
VelNetLogger.Info($"Joined Room: {jm.room} \t ({jm.playerIds.Count} players)");
// we clear the list, but will recreate as we get messages from people in our room // we clear the list, but will recreate as we get messages from people in our room
players.Clear(); players.Clear();
masterPlayer = null; masterPlayer = null;
foreach (int playerId in jm.ids) foreach (int playerId in jm.playerIds)
{ {
VelNetPlayer player = new VelNetPlayer VelNetPlayer player = new VelNetPlayer
{ {
@ -365,7 +399,7 @@ namespace VelNet
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
foreach (KeyValuePair<int, VelNetPlayer> kvp in players) foreach (KeyValuePair<int, VelNetPlayer> kvp in players)
@ -374,12 +408,12 @@ namespace VelNet
{ {
try try
{ {
OnPlayerJoined?.Invoke(kvp.Value); OnPlayerJoined?.Invoke(kvp.Value, true);
} }
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
} }
} }
@ -394,7 +428,10 @@ namespace VelNet
} }
case PlayerLeftMessage lm: case PlayerLeftMessage lm:
{ {
VelNetLogger.Info($"Player left: {lm.userId}");
VelNetPlayer me = players[userid]; VelNetPlayer me = players[userid];
// we got a left message, kill it // we got a left message, kill it
// change ownership of all objects to master // change ownership of all objects to master
List<string> deleteObjects = new List<string>(); List<string> deleteObjects = new List<string>();
@ -433,13 +470,15 @@ namespace VelNet
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
break; break;
} }
case JoinMessage jm: case JoinMessage jm:
{ {
VelNetLogger.Info($"Player joined: {jm.userId}");
// we got a join message, create it // we got a join message, create it
VelNetPlayer player = new VelNetPlayer VelNetPlayer player = new VelNetPlayer
{ {
@ -450,12 +489,12 @@ namespace VelNet
players.Add(jm.userId, player); players.Add(jm.userId, player);
try try
{ {
OnPlayerJoined?.Invoke(player); OnPlayerJoined?.Invoke(player, false);
} }
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
@ -469,13 +508,15 @@ namespace VelNet
} }
else else
{ {
Debug.LogError("Received message from player that doesn't exist "); VelNetLogger.Error("Received message from player that doesn't exist ");
} }
break; break;
} }
case ChangeMasterMessage cm: case ChangeMasterMessage cm:
{ {
VelNetLogger.Info($"Master client changed: {cm.masterId}");
if (masterPlayer == null) if (masterPlayer == null)
{ {
if (players.ContainsKey(cm.masterId)) if (players.ContainsKey(cm.masterId))
@ -485,7 +526,7 @@ namespace VelNet
else else
{ {
masterPlayer = players.Aggregate((p1, p2) => p1.Value.userid.CompareTo(p2.Value.userid) > 0 ? p1 : p2).Value; masterPlayer = players.Aggregate((p1, p2) => p1.Value.userid.CompareTo(p2.Value.userid) > 0 ? p1 : p2).Value;
Debug.LogError("Got an invalid master client id from the server. Using fallback."); VelNetLogger.Error("Got an invalid master client id from the server. Using fallback.");
} }
// no master player yet, add the scene objects // no master player yet, add the scene objects
@ -494,23 +535,24 @@ namespace VelNet
{ {
if (sceneObjects[i].sceneNetworkId == 0) if (sceneObjects[i].sceneNetworkId == 0)
{ {
Debug.LogError("Scene Network ID is 0. Make sure to assign one first.", sceneObjects[i]); VelNetLogger.Error("Scene Network ID is 0. Make sure to assign one first.", sceneObjects[i]);
} }
sceneObjects[i].networkId = -1 + "-" + sceneObjects[i].sceneNetworkId; 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
try { try
{
sceneObjects[i].OwnershipChanged?.Invoke(masterPlayer); sceneObjects[i].OwnershipChanged?.Invoke(masterPlayer);
} }
catch (Exception e) catch (Exception e)
{ {
Debug.LogError("Error in event handling.\n" + e); VelNetLogger.Error("Error in event handling.\n" + e);
} }
if (objects.ContainsKey(sceneObjects[i].networkId)) if (objects.ContainsKey(sceneObjects[i].networkId))
{ {
Debug.LogError($"Duplicate NetworkID: {sceneObjects[i].networkId} {sceneObjects[i].name} {objects[sceneObjects[i].networkId]}"); VelNetLogger.Error($"Duplicate NetworkID: {sceneObjects[i].networkId} {sceneObjects[i].name} {objects[sceneObjects[i].networkId]}");
} }
else else
{ {
@ -541,12 +583,12 @@ namespace VelNet
receivedMessages.Clear(); receivedMessages.Clear();
} }
// reconnection
if (Time.timeAsDouble - lastConnectionCheck > 2) if (Time.timeAsDouble - lastConnectionCheck > 2)
{ {
if (!IsConnected && wasConnected) if (!IsConnected && wasConnected)
{ {
Debug.Log("Reconnecting..."); VelNetLogger.Info("Reconnecting...");
ConnectToServer(); ConnectToServer();
} }
@ -556,7 +598,7 @@ namespace VelNet
private void LeaveRoom() private void LeaveRoom()
{ {
Debug.Log("Leaving Room"); VelNetLogger.Info("Leaving Room");
string oldRoom = LocalPlayer?.room; string oldRoom = LocalPlayer?.room;
// delete all NetworkObjects that aren't scene objects or are null now // delete all NetworkObjects that aren't scene objects or are null now
objects objects
@ -582,7 +624,7 @@ namespace VelNet
// prevent errors in subscribers from breaking our code // prevent errors in subscribers from breaking our code
catch (Exception e) catch (Exception e)
{ {
Debug.LogError(e); VelNetLogger.Error(e.ToString(), this);
} }
foreach (NetworkObject s in sceneObjects) foreach (NetworkObject s in sceneObjects)
@ -604,7 +646,7 @@ namespace VelNet
/// <summary> /// <summary>
/// Setup socket connection. /// Setup socket connection.
/// </summary> /// </summary>
public static void ConnectToServer() private static void ConnectToServer()
{ {
try try
{ {
@ -613,16 +655,13 @@ namespace VelNet
} }
catch (Exception e) catch (Exception e)
{ {
Debug.Log("On client connect exception " + e); VelNetLogger.Error("On client connect exception " + e);
} }
} }
private void DisconnectFromServer() private void DisconnectFromServer()
{ {
Debug.Log("Disconnecting from server"); VelNetLogger.Info("Disconnecting from server...");
Debug.Log("Leaving Room");
string oldRoom = LocalPlayer?.room; string oldRoom = LocalPlayer?.room;
// delete all NetworkObjects that aren't scene objects or are null now // delete all NetworkObjects that aren't scene objects or are null now
objects objects
@ -788,10 +827,10 @@ namespace VelNet
{ {
YouJoinedMessage m = new YouJoinedMessage(); YouJoinedMessage m = new YouJoinedMessage();
int N = GetIntFromBytes(ReadExact(stream, 4)); int N = GetIntFromBytes(ReadExact(stream, 4));
m.ids = new List<int>(); m.playerIds = new List<int>();
for (int i = 0; i < N; i++) for (int i = 0; i < N; i++)
{ {
m.ids.Add(GetIntFromBytes(ReadExact(stream, 4))); m.playerIds.Add(GetIntFromBytes(ReadExact(stream, 4)));
} }
N = stream.ReadByte(); N = stream.ReadByte();
@ -822,11 +861,17 @@ namespace VelNet
} }
} }
} }
catch (ThreadAbortException ex)
catch (Exception socketException)
{ {
Debug.Log("Socket exception: " + socketException); // pass
}
catch (SocketException socketException)
{
VelNetLogger.Error("Socket exception: " + socketException);
}
catch (Exception ex)
{
VelNetLogger.Error(ex.ToString());
} }
connected = false; connected = false;
@ -857,7 +902,7 @@ namespace VelNet
if (udpSocket.Available == 0) if (udpSocket.Available == 0)
{ {
Thread.Sleep(100); Thread.Sleep(100);
Debug.Log("Waiting for UDP response"); VelNetLogger.Info("Waiting for UDP response");
} }
else else
{ {
@ -873,7 +918,7 @@ namespace VelNet
switch ((MessageReceivedType)buffer[0]) switch ((MessageReceivedType)buffer[0])
{ {
case MessageReceivedType.LOGGED_IN: case MessageReceivedType.LOGGED_IN:
Debug.Log("UDP connected"); VelNetLogger.Info("UDP connected");
break; break;
case MessageReceivedType.DATA_MESSAGE: case MessageReceivedType.DATA_MESSAGE:
{ {
@ -891,9 +936,17 @@ namespace VelNet
} }
} }
} }
catch (Exception socketException) catch (ThreadAbortException ex)
{ {
Debug.Log("Socket exception: " + socketException); // pass
}
catch (SocketException socketException)
{
VelNetLogger.Error("Socket exception: " + socketException);
}
catch (Exception ex)
{
VelNetLogger.Error(ex.ToString());
} }
} }
@ -914,10 +967,10 @@ namespace VelNet
/// <returns>True if the message successfully sent. False if it failed and we should quit</returns> /// <returns>True if the message successfully sent. False if it failed and we should quit</returns>
private static bool SendTcpMessage(byte[] message) private static bool SendTcpMessage(byte[] message)
{ {
// Debug.Log("Sent: " + clientMessage); // Logging.Info("Sent: " + clientMessage);
if (instance.socketConnection == null) if (instance.socketConnection == null)
{ {
Debug.LogError("Tried to send message while socket connection was still null.", instance); VelNetLogger.Error("Tried to send message while socket connection was still null.", instance);
return false; return false;
} }
@ -927,7 +980,7 @@ namespace VelNet
if (!instance.socketConnection.Connected) if (!instance.socketConnection.Connected)
{ {
instance.DisconnectFromServer(); instance.DisconnectFromServer();
Debug.LogError("Disconnected from server. Most likely due to timeout."); VelNetLogger.Error("Disconnected from server. Most likely due to timeout.");
return false; return false;
} }
@ -941,12 +994,12 @@ namespace VelNet
catch (IOException ioException) catch (IOException ioException)
{ {
instance.DisconnectFromServer(); instance.DisconnectFromServer();
Debug.LogError("Disconnected from server. Most likely due to timeout.\n" + ioException); VelNetLogger.Error("Disconnected from server. Most likely due to timeout.\n" + ioException);
return false; return false;
} }
catch (SocketException socketException) catch (SocketException socketException)
{ {
Debug.Log("Socket exception: " + socketException); VelNetLogger.Error("Socket exception: " + socketException);
} }
return true; return true;
@ -996,6 +1049,12 @@ namespace VelNet
public static void GetRoomData(string roomName) public static void GetRoomData(string roomName)
{ {
if (string.IsNullOrEmpty(roomName))
{
VelNetLogger.Error("Room name is null. Can't get info for this room.");
return;
}
MemoryStream stream = new MemoryStream(); MemoryStream stream = new MemoryStream();
BinaryWriter writer = new BinaryWriter(stream); BinaryWriter writer = new BinaryWriter(stream);
@ -1147,14 +1206,14 @@ namespace VelNet
NetworkObject prefab = instance.prefabs.Find(p => p.name == prefabName); NetworkObject prefab = instance.prefabs.Find(p => p.name == prefabName);
if (prefab == null) if (prefab == null)
{ {
Debug.LogError("Couldn't find a prefab with that name: " + prefabName); VelNetLogger.Error("Couldn't find a prefab with that name: " + prefabName);
return null; return null;
} }
string networkId = localPlayer.userid + "-" + localPlayer.lastObjectId++; string networkId = localPlayer.userid + "-" + localPlayer.lastObjectId++;
if (instance.objects.ContainsKey(networkId)) if (instance.objects.ContainsKey(networkId))
{ {
Debug.LogError("Can't instantiate object. Obj with that network ID was already instantiated.", instance.objects[networkId]); VelNetLogger.Error("Can't instantiate object. Obj with that network ID was already instantiated.", instance.objects[networkId]);
return null; return null;
} }
@ -1168,7 +1227,7 @@ namespace VelNet
} }
catch (Exception e) catch (Exception e)
{ {
Debug.LogError("Error in event handling.\n" + e); VelNetLogger.Error("Error in event handling.\n" + e);
} }
instance.objects.Add(newObject.networkId, newObject); instance.objects.Add(newObject.networkId, newObject);
@ -1199,8 +1258,9 @@ namespace VelNet
} }
catch (Exception e) catch (Exception e)
{ {
Debug.LogError("Error in event handling.\n" + e); VelNetLogger.Error("Error in event handling.\n" + e);
} }
instance.objects.Add(newObject.networkId, newObject); instance.objects.Add(newObject.networkId, newObject);
} }
@ -1218,7 +1278,7 @@ namespace VelNet
if (obj == null) if (obj == null)
{ {
instance.objects.Remove(networkId); instance.objects.Remove(networkId);
Debug.LogError("Object to delete was already null"); VelNetLogger.Error("Object to delete was already null");
return; return;
} }
@ -1241,7 +1301,7 @@ namespace VelNet
if (obj == null) if (obj == null)
{ {
instance.objects.Remove(networkId); instance.objects.Remove(networkId);
Debug.LogError("Object to delete was already null"); // VelNetLogger.Error("Object to delete was already null");
return; return;
} }
@ -1263,28 +1323,28 @@ namespace VelNet
{ {
if (!InRoom) if (!InRoom)
{ {
Debug.LogError("Can't take ownership. Not in a room."); VelNetLogger.Error("Can't take ownership. Not in a room.");
return false; return false;
} }
// local player must exist // local player must exist
if (LocalPlayer == null) if (LocalPlayer == null)
{ {
Debug.LogError("Can't take ownership. No local player."); VelNetLogger.Error("Can't take ownership. No local player.");
return false; return false;
} }
// obj must exist // obj must exist
if (!instance.objects.ContainsKey(networkId)) if (!instance.objects.ContainsKey(networkId))
{ {
Debug.LogError("Can't take ownership. Object with that network id doesn't exist: " + networkId); VelNetLogger.Error("Can't take ownership. Object with that network id doesn't exist: " + networkId);
return false; return false;
} }
// if the ownership is locked, fail // if the ownership is locked, fail
if (instance.objects[networkId].ownershipLocked) if (instance.objects[networkId].ownershipLocked)
{ {
Debug.LogError("Can't take ownership. Ownership for this object is locked."); VelNetLogger.Error("Can't take ownership. Ownership for this object is locked.");
return false; return false;
} }
@ -1296,7 +1356,7 @@ namespace VelNet
} }
catch (Exception e) catch (Exception e)
{ {
Debug.LogError("Error in event handling.\n" + e); VelNetLogger.Error("Error in event handling.\n" + e);
} }
// must be ordered, so that ownership transfers are not confused. // must be ordered, so that ownership transfers are not confused.

View File

@ -1,7 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System; using System;
using System.IO; using System.IO;
using System.Text;
using UnityEngine; using UnityEngine;
namespace VelNet namespace VelNet
@ -33,7 +32,7 @@ namespace VelNet
VelNetManager.OnPlayerJoined += HandlePlayerJoined; VelNetManager.OnPlayerJoined += HandlePlayerJoined;
} }
public void HandlePlayerJoined(VelNetPlayer player) public void HandlePlayerJoined(VelNetPlayer player, bool alreadyInRoom)
{ {
//if this is the local player, go through the objects that I own, and send instantiation messages for the ones that have prefab names //if this is the local player, go through the objects that I own, and send instantiation messages for the ones that have prefab names
if (isLocal) if (isLocal)

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f4838fd3ac54efa4c88253bb977c20c1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dc0ae145afb98164493d097e29dfb3bd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 18b28d1150d229647ae76efe2bea95f8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -28,6 +28,7 @@ Transform:
m_LocalRotation: {x: -0.70710635, y: -0, z: -0, w: 0.7071073} m_LocalRotation: {x: -0.70710635, y: -0, z: -0, w: 0.7071073}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 8, y: 0.1, z: 8} m_LocalScale: {x: 8, y: 0.1, z: 8}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 3076416102083120807} m_Father: {fileID: 3076416102083120807}
m_RootOrder: 0 m_RootOrder: 0
@ -51,6 +52,7 @@ MeshRenderer:
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_DynamicOccludee: 1 m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1 m_MotionVectors: 1
m_LightProbeUsage: 1 m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
@ -114,6 +116,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 6602982999811082154} - {fileID: 6602982999811082154}
m_Father: {fileID: 0} m_Father: {fileID: 0}
@ -138,6 +141,7 @@ MeshRenderer:
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_DynamicOccludee: 1 m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1 m_MotionVectors: 1
m_LightProbeUsage: 1 m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f8bb9027566930042942da486c1e29e0
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -193,6 +193,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 626742070} m_Father: {fileID: 626742070}
m_RootOrder: 0 m_RootOrder: 0
@ -296,6 +297,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 138032023} - {fileID: 138032023}
- {fileID: 1557879931} - {fileID: 1557879931}
@ -416,6 +418,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 117638565} m_Father: {fileID: 117638565}
m_RootOrder: 0 m_RootOrder: 0
@ -453,6 +456,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 711524767} m_Father: {fileID: 711524767}
m_RootOrder: 0 m_RootOrder: 0
@ -595,6 +599,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1894247853} - {fileID: 1894247853}
- {fileID: 117638565} - {fileID: 117638565}
@ -628,8 +633,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7a7db5bc792cd471dbd8039664359eee, type: 3} m_Script: {fileID: 11500000, guid: 7a7db5bc792cd471dbd8039664359eee, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
autoConnect: 1
autoRejoin: 1
userInput: {fileID: 626742069} userInput: {fileID: 626742069}
sendInput: {fileID: 0} sendInput: {fileID: 0}
roomInput: {fileID: 711524768} roomInput: {fileID: 711524768}
@ -664,6 +667,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 948755938} m_Father: {fileID: 948755938}
m_RootOrder: 0 m_RootOrder: 0
@ -777,6 +781,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 5 m_RootOrder: 5
@ -809,6 +814,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1992361063} m_Father: {fileID: 1992361063}
m_RootOrder: 0 m_RootOrder: 0
@ -889,6 +895,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1081889596} - {fileID: 1081889596}
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
@ -1021,6 +1028,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1047954372} m_Father: {fileID: 1047954372}
m_RootOrder: 1 m_RootOrder: 1
@ -1138,7 +1146,10 @@ MonoBehaviour:
m_HideMobileInput: 0 m_HideMobileInput: 0
m_CharacterValidation: 0 m_CharacterValidation: 0
m_CharacterLimit: 0 m_CharacterLimit: 0
m_OnEndEdit: m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnDidEndEdit:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_OnValueChanged: m_OnValueChanged:
@ -1162,6 +1173,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 2034439} - {fileID: 2034439}
- {fileID: 1560686264} - {fileID: 1560686264}
@ -1300,6 +1312,7 @@ Transform:
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 4 m_RootOrder: 4
@ -1333,6 +1346,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 162005664} - {fileID: 162005664}
- {fileID: 1484033256} - {fileID: 1484033256}
@ -1395,7 +1409,10 @@ MonoBehaviour:
m_HideMobileInput: 0 m_HideMobileInput: 0
m_CharacterValidation: 0 m_CharacterValidation: 0
m_CharacterLimit: 0 m_CharacterLimit: 0
m_OnEndEdit: m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnDidEndEdit:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_OnValueChanged: m_OnValueChanged:
@ -1517,6 +1534,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1047954372} m_Father: {fileID: 1047954372}
m_RootOrder: 2 m_RootOrder: 2
@ -1555,6 +1573,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1401860307} - {fileID: 1401860307}
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
@ -1753,6 +1772,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -20} m_LocalPosition: {x: 0, y: 1, z: -20}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 3 m_RootOrder: 3
@ -1786,6 +1806,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1055818112} - {fileID: 1055818112}
m_Father: {fileID: 927188573} m_Father: {fileID: 927188573}
@ -1876,6 +1897,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 912887456} - {fileID: 912887456}
- {fileID: 1154194182} - {fileID: 1154194182}
@ -1986,6 +2008,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 359309141} - {fileID: 359309141}
- {fileID: 1840952814} - {fileID: 1840952814}
@ -2084,7 +2107,10 @@ MonoBehaviour:
m_HideMobileInput: 0 m_HideMobileInput: 0
m_CharacterValidation: 0 m_CharacterValidation: 0
m_CharacterLimit: 0 m_CharacterLimit: 0
m_OnEndEdit: m_OnSubmit:
m_PersistentCalls:
m_Calls: []
m_OnDidEndEdit:
m_PersistentCalls: m_PersistentCalls:
m_Calls: [] m_Calls: []
m_OnValueChanged: m_OnValueChanged:
@ -2164,6 +2190,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
m_RootOrder: 10 m_RootOrder: 10
@ -2242,6 +2269,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 2144436500} - {fileID: 2144436500}
- {fileID: 615558652} - {fileID: 615558652}
@ -2328,6 +2356,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1047954372} - {fileID: 1047954372}
m_Father: {fileID: 912887456} m_Father: {fileID: 912887456}
@ -2366,6 +2395,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 545137760} m_Father: {fileID: 545137760}
m_RootOrder: 0 m_RootOrder: 0
@ -2428,6 +2458,7 @@ GameObject:
- component: {fileID: 1099803615} - component: {fileID: 1099803615}
- component: {fileID: 1099803616} - component: {fileID: 1099803616}
- component: {fileID: 1099803613} - component: {fileID: 1099803613}
- component: {fileID: 1099803614}
m_Layer: 0 m_Layer: 0
m_Name: NetworkManager m_Name: NetworkManager
m_TagString: Untagged m_TagString: Untagged
@ -2448,6 +2479,18 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
playerPrefab: {fileID: 6139051692386484099, guid: d4158ab9c4a204cdbba28d3273fc1fb3, type: 3} playerPrefab: {fileID: 6139051692386484099, guid: d4158ab9c4a204cdbba28d3273fc1fb3, type: 3}
--- !u!114 &1099803614
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1099803612}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5ea1fe0eb58e4184bbb2edcc99c51119, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1099803615 --- !u!4 &1099803615
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -2458,6 +2501,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -2474,10 +2518,13 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 233344de094f11341bdb834d564708dc, type: 3} m_Script: {fileID: 11500000, guid: 233344de094f11341bdb834d564708dc, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
host: velnet-lts.ugavel.com host: vn.ugavel.com
port: 5000 port: 5000
udpConnected: 0 udpConnected: 0
userid: -1 userid: -1
debugMessages: 1
autoLogin: 1
onlyConnectToSameVersion: 1
connected: 0 connected: 0
prefabs: prefabs:
- {fileID: 9102273340480352682, guid: d4158ab9c4a204cdbba28d3273fc1fb3, type: 3} - {fileID: 9102273340480352682, guid: d4158ab9c4a204cdbba28d3273fc1fb3, type: 3}
@ -2513,6 +2560,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1679565284} - {fileID: 1679565284}
m_Father: {fileID: 927188573} m_Father: {fileID: 927188573}
@ -2639,6 +2687,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1295274441} - {fileID: 1295274441}
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
@ -2771,6 +2820,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1278634767} m_Father: {fileID: 1278634767}
m_RootOrder: 0 m_RootOrder: 0
@ -2850,6 +2900,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 864104176} m_Father: {fileID: 864104176}
m_RootOrder: 0 m_RootOrder: 0
@ -2929,6 +2980,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1997780490} m_Father: {fileID: 1997780490}
m_RootOrder: 0 m_RootOrder: 0
@ -3024,6 +3076,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 818.5, y: 223, z: 0} m_LocalPosition: {x: 818.5, y: 223, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
@ -3130,6 +3183,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 711524767} m_Father: {fileID: 711524767}
m_RootOrder: 1 m_RootOrder: 1
@ -3209,6 +3263,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
m_RootOrder: 11 m_RootOrder: 11
@ -3288,6 +3343,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 117638565} m_Father: {fileID: 117638565}
m_RootOrder: 1 m_RootOrder: 1
@ -3363,6 +3419,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 626742070} m_Father: {fileID: 626742070}
m_RootOrder: 1 m_RootOrder: 1
@ -3440,6 +3497,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 2033163677} - {fileID: 2033163677}
m_Father: {fileID: 1154194182} m_Father: {fileID: 1154194182}
@ -3479,6 +3537,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 2118429759} - {fileID: 2118429759}
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
@ -3611,6 +3670,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 948755938} m_Father: {fileID: 948755938}
m_RootOrder: 1 m_RootOrder: 1
@ -3690,6 +3750,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
m_RootOrder: 0 m_RootOrder: 0
@ -3770,6 +3831,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 498776800} - {fileID: 498776800}
m_Father: {fileID: 948755938} m_Father: {fileID: 948755938}
@ -3903,6 +3965,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: m_Children:
- {fileID: 1428857710} - {fileID: 1428857710}
m_Father: {fileID: 244561620} m_Father: {fileID: 244561620}
@ -4007,6 +4070,71 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1997780489} m_GameObject: {fileID: 1997780489}
m_CullTransparentMesh: 1 m_CullTransparentMesh: 1
--- !u!1 &2021764943
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2021764946}
- component: {fileID: 2021764945}
- component: {fileID: 2021764944}
m_Layer: 0
m_Name: TestRPC Object
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2021764944
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2021764943}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5515094c5c544b6b8ed7fd51a86548d4, type: 3}
m_Name:
m_EditorClassIdentifier:
ownershipLocked: 0
networkId:
sceneNetworkId: 102
prefabName:
isSceneObject: 1
syncedComponents:
- {fileID: 2021764945}
--- !u!114 &2021764945
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2021764943}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2bcc94802a5742d4299e48c898e52dfa, type: 3}
m_Name:
m_EditorClassIdentifier:
networkObject: {fileID: 2021764944}
--- !u!4 &2021764946
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2021764943}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.9278836, y: 2.2367568, z: 0.06653424}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2033163676 --- !u!1 &2033163676
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -4035,6 +4163,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1679565284} m_Father: {fileID: 1679565284}
m_RootOrder: 0 m_RootOrder: 0
@ -4110,6 +4239,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1760805525} m_Father: {fileID: 1760805525}
m_RootOrder: 0 m_RootOrder: 0
@ -4189,6 +4319,7 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 1047954372} m_Father: {fileID: 1047954372}
m_RootOrder: 0 m_RootOrder: 0
@ -4251,6 +4382,10 @@ PrefabInstance:
propertyPath: sceneNetworkId propertyPath: sceneNetworkId
value: 100 value: 100
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 8565720275311462452, guid: 6e4a023f70e01405e8b249a4488fe319, type: 3}
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8565720275311462453, guid: 6e4a023f70e01405e8b249a4488fe319, type: 3} - target: {fileID: 8565720275311462453, guid: 6e4a023f70e01405e8b249a4488fe319, type: 3}
propertyPath: m_Name propertyPath: m_Name
value: TestNetworkedGameObject value: TestNetworkedGameObject

View File

@ -123,7 +123,7 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &516411417 --- !u!1 &561771045
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -131,104 +131,54 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 516411421} - component: {fileID: 561771047}
- component: {fileID: 516411420} - component: {fileID: 561771046}
- component: {fileID: 516411419}
- component: {fileID: 516411418}
m_Layer: 0 m_Layer: 0
m_Name: Main Camera m_Name: VelNet Manager
m_TagString: MainCamera m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!114 &516411418 --- !u!114 &561771046
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417} m_GameObject: {fileID: 561771045}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 233344de094f11341bdb834d564708dc, type: 3} m_Script: {fileID: 11500000, guid: 233344de094f11341bdb834d564708dc, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
host: 127.0.0.1 host: vn.ugavel.com
port: 80 port: 5000
udpConnected: 0 udpConnected: 0
userid: -1 userid: -1
room: debugMessages: 1
autoLogin: 1
onlyConnectToSameVersion: 0
connected: 0 connected: 0
prefabs: [] prefabs: []
sceneObjects: [] sceneObjects: []
deletedSceneObjects: [] deletedSceneObjects: []
--- !u!81 &516411419 --- !u!4 &561771047
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417}
m_Enabled: 1
--- !u!20 &516411420
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &516411421
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 516411417} m_GameObject: {fileID: 561771045}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &756322628 --- !u!1 &951053497
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -236,8 +186,8 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 756322630} - component: {fileID: 951053499}
- component: {fileID: 756322629} - component: {fileID: 951053498}
m_Layer: 0 m_Layer: 0
m_Name: Directional Light m_Name: Directional Light
m_TagString: Untagged m_TagString: Untagged
@ -245,13 +195,13 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!108 &756322629 --- !u!108 &951053498
Light: Light:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756322628} m_GameObject: {fileID: 951053497}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 10 serializedVersion: 10
m_Type: 1 m_Type: 1
@ -307,17 +257,238 @@ Light:
m_UseViewFrustumForShadowCasterCull: 1 m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0 m_ShadowRadius: 0
m_ShadowAngle: 0 m_ShadowAngle: 0
--- !u!4 &756322630 --- !u!4 &951053499
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 756322628} m_GameObject: {fileID: 951053497}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &958953873
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 958953877}
- component: {fileID: 958953876}
- component: {fileID: 958953875}
- component: {fileID: 958953874}
- component: {fileID: 958953879}
- component: {fileID: 958953878}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &958953874
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &958953875
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &958953876
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &958953877
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &958953878
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3f1f9b0bbd93a484a987c51f1107ebe5, type: 3}
m_Name:
m_EditorClassIdentifier:
networkObject: {fileID: 958953879}
serializationRateHz: 30
hybridOnChangeCompression: 1
useLocalTransform: 0
teleportDistance: 0
teleportAngle: 0
--- !u!114 &958953879
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 958953873}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5515094c5c544b6b8ed7fd51a86548d4, type: 3}
m_Name:
m_EditorClassIdentifier:
ownershipLocked: 0
networkId:
sceneNetworkId: 100
prefabName:
isSceneObject: 1
syncedComponents:
- {fileID: 958953878}
--- !u!1 &1615517332
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1615517335}
- component: {fileID: 1615517334}
- component: {fileID: 1615517333}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1615517333
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1615517332}
m_Enabled: 1
--- !u!20 &1615517334
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1615517332}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1615517335
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1615517332}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 2e6e0ddeb76e51b46afc0f0a43386ff2 guid: 3e0da379b7e26cf4384f5cdff10f4fda
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}
userData: userData:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cd6dd1d4e81bce64faaf29eedf9d2a63
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,22 @@
using UnityEngine;
using VelNet;
public class CustomMessageTest : MonoBehaviour
{
private void Start()
{
VelNetManager.OnJoinedRoom += _ =>
{
byte[] testPacket = { 244 };
VelNetManager.SendCustomMessage(testPacket, true, true, false);
};
VelNetManager.CustomMessageReceived += (senderId, dataWithCategory) =>
{
if (dataWithCategory[0] == 244)
{
Debug.Log($"Received test packet from {senderId}");
}
};
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5ea1fe0eb58e4184bbb2edcc99c51119
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -8,9 +8,6 @@ namespace VelNet
{ {
public class NetworkGUI : MonoBehaviour public class NetworkGUI : MonoBehaviour
{ {
public bool autoConnect = true;
public bool autoRejoin = true;
public InputField userInput; public InputField userInput;
public InputField sendInput; public InputField sendInput;
public InputField roomInput; public InputField roomInput;
@ -40,7 +37,7 @@ namespace VelNet
{ {
if (VelNetManager.IsConnected) if (VelNetManager.IsConnected)
{ {
VelNetManager.GetRoomData("0"); VelNetManager.GetRoomData(VelNetManager.Room);
} }
} }
@ -62,44 +59,6 @@ namespace VelNet
{ {
comms = FindObjectOfType<DissonanceComms>(); comms = FindObjectOfType<DissonanceComms>();
microphones.AddOptions(new List<string>(Microphone.devices)); microphones.AddOptions(new List<string>(Microphone.devices));
if (autoConnect)
{
AutoJoin();
}
}
private void AutoJoin()
{
VelNetManager.OnConnectedToServer += Login;
void Login()
{
if (!autoRejoin)
{
VelNetManager.OnConnectedToServer -= Login;
}
HandleLogin();
VelNetManager.OnLoggedIn += JoinRoom;
void JoinRoom()
{
HandleJoin();
VelNetManager.OnLoggedIn -= JoinRoom;
}
}
}
private void Update()
{
if (autoRejoin)
{
if (!VelNetManager.IsConnected)
{
AutoJoin();
}
}
} }
public void handleMicrophoneSelection() public void handleMicrophoneSelection()

View File

@ -0,0 +1,26 @@
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using VelNet;
public class RPCTest : NetworkComponent
{
private void Update()
{
if (Input.GetKeyDown(KeyCode.R))
{
SendRPC(nameof(TestRPC), true);
}
}
private void TestRPC()
{
Debug.Log("RPC RECEIVED!");
}
public override void ReceiveBytes(byte[] message)
{
Debug.Log("WOW. BYTES");
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2bcc94802a5742d4299e48c898e52dfa
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +1,7 @@
{ {
"name": "edu.uga.engr.vel.velnet", "name": "edu.uga.engr.vel.velnet",
"displayName": "VelNet", "displayName": "VelNet",
"version": "1.0.13", "version": "1.1.0",
"unity": "2019.1", "unity": "2019.1",
"description": "A custom networking library for Unity.", "description": "A custom networking library for Unity.",
"keywords": [ "keywords": [

View File

@ -129,7 +129,7 @@
"depth": 0, "depth": 0,
"source": "local", "source": "local",
"dependencies": { "dependencies": {
"edu.uga.engr.vel.velnet": "1.0.4" "edu.uga.engr.vel.velnet": "1.1.0"
} }
}, },
"com.unity.modules.ai": { "com.unity.modules.ai": {

View File

@ -6,6 +6,6 @@ EditorBuildSettings:
serializedVersion: 2 serializedVersion: 2
m_Scenes: m_Scenes:
- enabled: 1 - enabled: 1
path: Assets/Samples/VelNet/1.0.4/Example/test.unity path: Assets/Samples/VelNet/1.0.4/Example/Scenes/Demo All.unity
guid: e4e43899246c941c78acfc59ce2f664a guid: e4e43899246c941c78acfc59ce2f664a
m_configObjects: {} m_configObjects: {}

View File

@ -12,4 +12,4 @@ MonoBehaviour:
m_Script: {fileID: 0} m_Script: {fileID: 0}
m_Name: m_Name:
m_EditorClassIdentifier: Unity.Rider.Editor:Packages.Rider.Editor:RiderScriptEditorPersistedState m_EditorClassIdentifier: Unity.Rider.Editor:Packages.Rider.Editor:RiderScriptEditorPersistedState
lastWriteTicks: -8585461253992250955 lastWriteTicks: -8585433455978485828

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 40 KiB

BIN
velnet_logo.psd Normal file

Binary file not shown.

BIN
velnet_logo_noborder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB