fishnet installed
This commit is contained in:
15
Assets/FishNet/Demos/FishNet.Demos.asmdef
Normal file
15
Assets/FishNet/Demos/FishNet.Demos.asmdef
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "FishNet.Demos",
|
||||
"references": [
|
||||
"GUID:7c88a4a7926ee5145ad2dfa06f454c67"
|
||||
],
|
||||
"includePlatforms": [],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": false,
|
||||
"overrideReferences": false,
|
||||
"precompiledReferences": [],
|
||||
"autoReferenced": true,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
7
Assets/FishNet/Demos/FishNet.Demos.asmdef.meta
Normal file
7
Assets/FishNet/Demos/FishNet.Demos.asmdef.meta
Normal file
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0bb35fc3181999548a4abea731e00e89
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/FishNet/Demos/Network LOD.meta
Normal file
8
Assets/FishNet/Demos/Network LOD.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9842088b2698c394dbf5c7329faddb21
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,7 @@
|
||||
- Open scene.
|
||||
- Select LOD Tester in scene and slide LOD Level.
|
||||
- Press Play.
|
||||
|
||||
Can only be tested as separate client and server.
|
||||
LOD Level cannot be changed at runtime.
|
||||
A level of 1 is the same as not using LOD.
|
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c373771d26a3af04a84bd1afd5aabfe8
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/FishNet/Demos/Network LOD/Prefabs.meta
Normal file
8
Assets/FishNet/Demos/Network LOD/Prefabs.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3ff6d7c186e86974b94a6f0902aef961
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,218 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4512293259955182959
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4512293259955182957}
|
||||
- component: {fileID: 4512293259955182956}
|
||||
- component: {fileID: 6667641716399555817}
|
||||
- component: {fileID: -5271135124957689192}
|
||||
m_Layer: 0
|
||||
m_Name: NetworkLOD_Prefab
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4512293259955182957
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4512293259955182959}
|
||||
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: 3106622367778460228}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &4512293259955182956
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4512293259955182959}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26b716c41e9b56b4baafaf13a523ba2e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
NetworkObserver: {fileID: 0}
|
||||
<PrefabId>k__BackingField: 2
|
||||
<SpawnableCollectionId>k__BackingField: 0
|
||||
_scenePathHash: 0
|
||||
<SceneId>k__BackingField: 0
|
||||
<AssetPathHash>k__BackingField: 8082309187455287958
|
||||
_sceneNetworkObjects:
|
||||
- {fileID: 4512293259955182956}
|
||||
<IsNested>k__BackingField: 0
|
||||
<ComponentIndex>k__BackingField: 0
|
||||
<PredictedSpawn>k__BackingField: {fileID: 0}
|
||||
_networkBehaviours:
|
||||
- {fileID: 6667641716399555817}
|
||||
- {fileID: -5271135124957689192}
|
||||
<ParentNetworkObject>k__BackingField: {fileID: 0}
|
||||
<ChildNetworkObjects>k__BackingField: []
|
||||
_isNetworked: 1
|
||||
_isGlobal: 0
|
||||
_initializeOrder: 0
|
||||
_defaultDespawnType: 0
|
||||
--- !u!114 &6667641716399555817
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4512293259955182959}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9880e85651efd71469092ce519317f7b, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_componentIndexCache: 0
|
||||
_addedNetworkObject: {fileID: 4512293259955182956}
|
||||
_networkObjectCache: {fileID: 4512293259955182956}
|
||||
_renderer: {fileID: 8565678507340770901}
|
||||
--- !u!114 &-5271135124957689192
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4512293259955182959}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: a2836e36774ca1c4bbbee976e17b649c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_componentIndexCache: 1
|
||||
_addedNetworkObject: {fileID: 4512293259955182956}
|
||||
_networkObjectCache: {fileID: 4512293259955182956}
|
||||
_synchronizeParent: 0
|
||||
_packing:
|
||||
Position: 1
|
||||
Rotation: 1
|
||||
Scale: 0
|
||||
_interpolation: 2
|
||||
_extrapolation: 2
|
||||
_enableTeleport: 0
|
||||
_teleportThreshold: 1
|
||||
_clientAuthoritative: 1
|
||||
_sendToOwner: 1
|
||||
_synchronizePosition: 1
|
||||
_positionSnapping:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
_synchronizeRotation: 1
|
||||
_rotationSnapping:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
_synchronizeScale: 1
|
||||
_scaleSnapping:
|
||||
X: 0
|
||||
Y: 0
|
||||
Z: 0
|
||||
--- !u!1 &7544314590428355348
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3106622367778460228}
|
||||
- component: {fileID: 300268715198095524}
|
||||
- component: {fileID: 8565678507340770901}
|
||||
- component: {fileID: 6944568664394371648}
|
||||
m_Layer: 0
|
||||
m_Name: Sphere
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &3106622367778460228
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7544314590428355348}
|
||||
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: 4512293259955182957}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &300268715198095524
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7544314590428355348}
|
||||
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &8565678507340770901
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7544314590428355348}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
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
|
||||
--- !u!135 &6944568664394371648
|
||||
SphereCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7544314590428355348}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 300370bdf7819da41937e0beac65b32c
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/FishNet/Demos/Network LOD/Scenes.meta
Normal file
8
Assets/FishNet/Demos/Network LOD/Scenes.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00e8cf37496d4954d876a194be050368
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
1085
Assets/FishNet/Demos/Network LOD/Scenes/NetworkLOD_Demo.unity
Normal file
1085
Assets/FishNet/Demos/Network LOD/Scenes/NetworkLOD_Demo.unity
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 961b96636e4c7644584dc8dfd0d0aad6
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
8
Assets/FishNet/Demos/Network LOD/Scripts.meta
Normal file
8
Assets/FishNet/Demos/Network LOD/Scripts.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d7351117344cad34c815771255551da8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
53
Assets/FishNet/Demos/Network LOD/Scripts/MoveRandomly.cs
Normal file
53
Assets/FishNet/Demos/Network LOD/Scripts/MoveRandomly.cs
Normal file
@ -0,0 +1,53 @@
|
||||
using FishNet.Object;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Demo.NetworkLod
|
||||
{
|
||||
|
||||
public class MoveRandomly : NetworkBehaviour
|
||||
{
|
||||
//Colors green for client.
|
||||
[SerializeField]
|
||||
private Renderer _renderer;
|
||||
|
||||
//Time to move to new position.
|
||||
private const float _moveRate = 3f;
|
||||
//Maximum range for new position.
|
||||
private const float _range = 10f;
|
||||
//Position to move towards.
|
||||
private Vector3 _goal;
|
||||
//Position at spawn.
|
||||
private Vector3 _start;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
//Client should not move these.
|
||||
if (base.IsClientOnly)
|
||||
return;
|
||||
//Server shouldn't move client one.
|
||||
if (base.Owner.IsValid)
|
||||
return;
|
||||
|
||||
transform.position = Vector3.MoveTowards(transform.position, _goal, _moveRate * Time.deltaTime);
|
||||
if (transform.position == _goal)
|
||||
RandomizeGoal();
|
||||
}
|
||||
|
||||
public override void OnStartNetwork()
|
||||
{
|
||||
base.OnStartNetwork();
|
||||
_start = transform.position;
|
||||
RandomizeGoal();
|
||||
|
||||
if (_renderer != null && base.Owner.IsActive)
|
||||
_renderer.material.color = Color.green;
|
||||
}
|
||||
|
||||
private void RandomizeGoal()
|
||||
{
|
||||
_goal = _start + (Random.insideUnitSphere * _range);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9880e85651efd71469092ce519317f7b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
51
Assets/FishNet/Demos/Network LOD/Scripts/NetworkLodTester.cs
Normal file
51
Assets/FishNet/Demos/Network LOD/Scripts/NetworkLodTester.cs
Normal file
@ -0,0 +1,51 @@
|
||||
using FishNet.Managing.Observing;
|
||||
using FishNet.Object;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace FishNet.Demo.NetworkLod
|
||||
{
|
||||
|
||||
public class NetworkLodTester : NetworkBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private NetworkObject _prefab;
|
||||
[SerializeField]
|
||||
private ObserverManager _observerManager;
|
||||
[Range(1, 8)]
|
||||
[SerializeField]
|
||||
private byte _lodLevel = 8;
|
||||
|
||||
private const int _count = 500;
|
||||
private const float _xyRange = 15f;
|
||||
private const float _zRange = 100f;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
List<float> distances = _observerManager.GetLevelOfDetailDistances();
|
||||
while (distances.Count > _lodLevel)
|
||||
distances.RemoveAt(distances.Count - 1);
|
||||
}
|
||||
|
||||
public override void OnStartServer()
|
||||
{
|
||||
base.OnStartServer();
|
||||
|
||||
for (int i = 0; i < _count; i++)
|
||||
{
|
||||
float x = Random.Range(-_xyRange, _xyRange);
|
||||
float y = Random.Range(-_xyRange, _xyRange);
|
||||
float z = Random.Range(0f, _zRange);
|
||||
|
||||
Vector3 position = new Vector3(x, y, z);
|
||||
NetworkObject obj = Instantiate(_prefab, position, Quaternion.identity);
|
||||
obj.name = $"Obj {i.ToString("0000")}";
|
||||
base.Spawn(obj);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3e21cdbd259430f4ea77e1f3a6c88fc4
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user