This commit is contained in:
Karrar
2024-03-27 22:26:13 +03:00
commit 0caf47a728
223 changed files with 32253 additions and 0 deletions

134
CHANGELOG.md Normal file
View File

@@ -0,0 +1,134 @@
### [0.11.8] Changelog - 2024/3/20
- Fixed an issue with generic structs.
- Fixed an issue with NetworkArray<T> interpolation.
- Fixed an issue with non-networked static Rigidbody2D causing Netick to change its state into dynamic.
- Fixed various other issues.
### [0.11.4] Changelog - 2024/3/12
- Changed the behaviour of OnChanged. Now, by default, it's not invoked during rollback/resims. Now it's only ever invoked when the value is changed during a new state/tick in the client or when it's changed by the server.
- Changed Sandboxs struct name to LaunchResults.
- Changed Sandboxs.Server to LaunchResults.Servers, and is now an array. To get the first server: launchResults.Servers[0].
- Changed the internal scene management system.
- Objects with Prediction Mode set to Input Source won't be rolled back to server state now. Set Prediction Mode to Everyone for that.
- Added support for additive scene load. To load an additive scene: Sandbox.LoadSceneAsync(index, LoadSceneMode.Additive). To unload an additively loaded scene: Sandbox.UnloadSceneAsync(index).
- Added Network.Launch method for starting Netick. This is a single method with two parameters to start Netick in any kind of configuration.
- Added Host as a starting mode supported by Netick. When starting Netick in Host mode, Sandbox.ConnectedPlayers will include the local server player, when started as a regular server, it won't include the local server player.
- Added Single Player as a starting mode supported by Netick. When starting Netick in Single Player mode, the networking loop (send and receive) won't be updated, and no transport instance will be created.
- Added OnPlayerConnected and OnPlayerDisconnected. These methods respect Host mode, so when starting Netick in host mode, OnPlayerConnected will be invoked for the local server player.
- Added Sandbox.Events. This allows you to subscribe to network events from anywhere, instead of having to use NetworkEvents Listener.
- Improved client performance.
- Fixed an issue with Network Prefab Pool not reusing instances.
- Fixed an issue with GetPreviousValue for compressible float-based types.
- Fixed an issue with auto-calculation of the bounds of a HitShape Container.
- Fixed an issue with Sandbox.OverlapSphere not clearing the hit list.
- Fixed an issue causing RenderInvokeOrder of NetworkRender to always be Update, even when choosing LateUpdate.
- Fixed an issue causing Netick to break in 32-bit systems/mode.
- Fixed an issue with switching scenes directly after starting Netick.
- Fixed an issue causing input types to keep being registered even if not using that input type anymore.
- Fixed an issue causing every pending input in the client to be sent.
- Fixed an issue causing a freeze when switching scenes at high ping.
- Fixed an issue with NetworkBehaviourRef<T> and NetworkObjectRef causing them to not work with null values.
- Fixed an issue causing scene objects and prefabs to be set as dirty even when they have not changed.
- Fixed various other issues.
### [0.10.4] Changelog - 2024/2/14
- Added implementation for NetworkAnimator. This is a component that can be used to sync Mecanim parameters and other state variables.
### [0.10.2] Changelog - 2024/2/8
- Added NetworkLinkedList<T>.
- Added NetworkQueue<T>.
- Added NetworkStack<T>.
- Added NetworkQueueSnapshot<T>, NetworkLinkedListSnapshot<T>, and NetworkStackSnapshot<T> structs with getters for each on OnChangedData. These structs represent the previous state of a network collection.
- Added NetworkObjectRef as a helper struct to sync a reference to a network object.
- Added NetworkBehaviourRef<T> as a helper struct to sync a reference to a network behavior instance.
- Added NetworkTimer as a helper struct to simplify doing a networked timer.
- Added IsAuthortative field to OnChangedData, which can be used to know if the source of the OnChanged event is local or caused by the server.
- Added foreach support to NetworkArray and NetworkArrayStruct variants.
- Added compile-time log errors for some code gen errors.
- Fixed an issue with network string concatenation.
- Fixed an issue causing a NetworkArray OnChanged to be invoked multiple times for the same index in the client.
- Fixed an issue with OnConnectedToServer not being invoked.
- Fixed various other issues.
### [0.9.14] Changelog - 2024/1/31
- Fixed a stutter with Remote Interpolation in the first few seconds after connecting to the server.
- Fixed a stutter with CSP in the first few seconds after connecting to the server.
- Fixed OnConnectedToServer not being invoked in the client.
### [0.9.11] Changelog - 2024/1/27
- Added the ability to associate an input with an index. This makes it possible to use more than one input (up to 10) of the same type per NetworkPlayer, differentiated using the index. This feature enables support for multiple local players all associated with the same NetworkPlayer, but differentiated with the input index. The index has been added as an optional parameter for all input-related methods.
- Fixed an issue when an object tries to destroy itself in NetworkStart.
- Fixed an issue with float Auto Interpolation, causing inaccurate interpolation data to be returned.
- Fixed an issue causing NetworkStart to be invoked before the object has applied its initial network state.
- Fixed an issue causing Interpolation Delay to be high when first connecting.
- Fixed an issue causing a weird behavior when data that needs to be sent exceeds Max Sendable Data Size.
- Fixed various other issues.
### [0.9.7] Changelog - 2024/1/12
- Improved bandwidth usage.
- Improved serialization performance.
- Added support for adding network behaviors to Sandbox prefab. Now it's possible to have 'global' network behaviors that are accessible with Sandbox.GetComponent<T>().
- Added Sandbox.AuthoritativeTick and Sandbox.PredictedTick. Sandbox.AuthoritativeTick always returns the latest received server tick. Sandbox.PredictedTick returns the last predicted tick on the client, regardless of whether this is a resimulation.
- Changed the location where OnConnectedToServer is invoked from. Now it's not invoked by the transport and instead as part of the internal Netick loop.
- Fixed an issue with Rigidbody.isKinematic not replicating when using NetworkRigidbody.
- Fixed an issue with string network property not replicating correctly.
- Fixed an issue with Unity 2023.
- Fixed various other issues.
### [0.9.5] Changelog - 2023/12/29
- Fixed an issue causing NetworkStart to be invoked on an object in the client before applying its full initial network state. Whatever state you assign in the server for a networked object after spawning it will be available, in full, when NetworkStart is called in the client on that object.
- Fixed an issue causing building the game to fail.
### [0.9.3] Changelog - 2023/12/27
- Improved heavy packet loss handling. Theoretically, It's possible to receive no packets from the server for an entire day (or more) and be back on track after that stops happening. Without needing to send the full networked world state.
- Improved CSP handling of heavy packet loss. Now the client behaves more expectedly when heavy packet loss (no packets for seconds) occurs.
- Improved CSP performance.
- Improved memory usage on the client.
- Added TransportConnection field to NetworkConnection, which can be used to get the transport connection.
- Fixed an issue with NetworkTransform rotation interpolation.
- Fixed various other issues.
### [0.8.11] Changelog - 2023/12/14
- Changed NetworkSandbox.IsVisiable to NetworkSandbox.IsVisible.
- Changed StartNode.ServerAndClient to StartNode.MultiplePeers.
- Added StartAsMultiplePeers to Netick.Unity.Network. This can be used to start multiple clients (and choose to start a server with them or not) in the same Unity instance. Netick.Unity.Network.StartAsServerAndClient is now marked as obsolete.
- Fixed an issue causing NetworkStart to be called after other callbacks of NetworkBehaviour.
- Fixed an issue causing a removed object to still be in the simulation.
- Fixed an issue causing LiteNetLibTransport to throw an exception when a client wants to connect despite the number of connected clients being MaxPlayers.
- Fixed various other issues.
### [0.8.8] Changelog - 2023/11/30
- Changed the behavior of [OnChanged] methods to act similarly to Netick 1. Now [OnChanged] methods are not called for non-default/inspector values, and only called when the property value changes during runtime.
- Changed the default precision value of network properties to 0.001. This should greatly decrease bandwidth usage. If you don't want any compression, pass -1 to precision parameter of [Networked].
- Fixed an issue with Auto Interpolation when passing a valid precision value to [Networked].
- Fixed various other issues.
### [0.8.6] Changelog - 2023/11/19
- Fixed an issue causing [OnChanged] methods on NetworkArray to not work correctly.
- Fixed an issue causing network state changes to not be detected if they weren't done in NetworkFixedUpdate.
### [0.8.4] Changelog - 2023/11/17
- Fixed a CodeGen issue with parameterless Rpc methods.
- Fixed a CodeGen issue in Unity +2022 causing "Reference has errors".
- Fixed an issue with NetworkArray when used with a type smaller than 4 bytes, like short, causing incorrect elements to be changed when using the array indexer setter.
- Fixed an issue with NetworkString causing the string to be longer than it should be.
- Fixed an issue with IL2CPP causing build to fail.
### [0.8.2] Changelog - 2023/11/16
- Fixed a desync issue that happens with very heavy packet loss (no packets for +2 seconds).

7
CHANGELOG.md.meta Normal file
View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6a071b8b850fac44ebb9392755268c35
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Documentation.meta Normal file
View File

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

View File

@@ -0,0 +1,5 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,11
[InternetShortcut]
IDList=
URL=https://www.netick.net/api_docs/namespaces.html

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4fd20cd30e447694e8413bba1a99236f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,11
[InternetShortcut]
IDList=
URL=https://discord.com/invite/uV6bfG66Fx
HotKey=0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 29f4a94db22542c4c8dfbf9a759bcb5c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,6 @@
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,11
[InternetShortcut]
IDList=
URL=https://netick.net/docs/manual/
HotKey=0

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 18562e0820a5a46449173a3388e47177
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 10f0e80e72776854e983d4cdf6df9df2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Netick.meta Normal file
View File

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

View File

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

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@@ -0,0 +1,134 @@
fileFormatVersion: 2
guid: c822e25a65146c5419c826c53862d919
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 0
mipMapFadeDistanceEnd: 0
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 0
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@@ -0,0 +1,134 @@
fileFormatVersion: 2
guid: 3e1784390e53f9f439e4616faaeb046b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 0
mipMapFadeDistanceEnd: 0
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 0
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -0,0 +1,134 @@
fileFormatVersion: 2
guid: 79ee620ba3737f64799cdf499348eb00
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 0
mipMapFadeDistanceEnd: 0
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 0
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View File

@@ -0,0 +1,134 @@
fileFormatVersion: 2
guid: 0e217b04d3385ad419d6047def56b56e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 0
mipMapFadeDistanceEnd: 0
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 0
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 2
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

8
Netick/Editor.meta Normal file
View File

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

View File

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

View File

@@ -0,0 +1,12 @@
using System.Reflection;
#if UNITY_EDITOR
[assembly: AssemblyTitle("Netick")]
[assembly: AssemblyDescription("Networking Solution for Unity.")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Karrar Rahim")]
[assembly: AssemblyProduct("Netick")]
[assembly: AssemblyCopyright("Karrar Rahim 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
#endif

View File

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

View File

@@ -0,0 +1,69 @@
using System.IO;
using System.Linq;
using System.Collections.Generic;
using Mono.Cecil;
using Mono.Cecil.Cil;
using Unity.CompilationPipeline.Common.Diagnostics;
using Unity.CompilationPipeline.Common.ILPostProcessing;
using Netick.CodeGen;
using Unity.Netick.CodeGen;
using ILPPInterface = Unity.CompilationPipeline.Common.ILPostProcessing.ILPostProcessor;
namespace Unity.Netick.Helper.CodeGen
{
public sealed class CodeGen : ILPPInterface
{
private NetickILProcessor _netickILProcessor = new NetickILProcessor();
private List<DiagnosticMessage> _diagnostics = new List<DiagnosticMessage>();
public override ILPPInterface GetInstance() => this;
public override bool WillProcess(ICompiledAssembly compiledAssembly) => compiledAssembly.References.Any(filePath => Path.GetFileNameWithoutExtension(filePath) == CodeGenUtils.RuntimeAssemblyName);
public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
{
var assemblyDefinition = CodeGenUtils.AssemblyDefinitionFor(compiledAssembly, out var unused);
if (assemblyDefinition == null)
{
_diagnostics.AddError($"Cannot read Netick Runtime assembly definition: {compiledAssembly.Name}");
return null;
}
if (!Weave(assemblyDefinition))
return null;
var pe = new MemoryStream();
var pdb = new MemoryStream();
var writerParameters = new WriterParameters
{
SymbolWriterProvider = new PortablePdbWriterProvider(),
SymbolStream = pdb,
WriteSymbols = true
};
assemblyDefinition.Write(pe, writerParameters);
return new ILPostProcessResult(new InMemoryAssembly(pe.ToArray(), pdb.ToArray()), _diagnostics);
}
public bool Weave(AssemblyDefinition assemblyDefinition)
{
var mainModule = assemblyDefinition.MainModule;
var asm = assemblyDefinition.MainModule.Name.Replace(".dll", "");
if (asm == "Netick" || asm == "Netick.Unity")
return false;
var didProcess = false;
if (mainModule != null)
{
var weaver = new UnityCodeGen();
weaver.Init(mainModule, _diagnostics);
_netickILProcessor.Init(weaver, mainModule);
didProcess = _netickILProcessor.ProcessAssembly(assemblyDefinition);
}
else
_diagnostics.AddError($"Cannot get main module from assembly definition: {assemblyDefinition.Name}");
return didProcess;
}
}
}

View File

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

View File

@@ -0,0 +1,25 @@
{
"name": "Unity.Netick.Helper.CodeGen",
"rootNamespace": "",
"references": [],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": true,
"overrideReferences": true,
"precompiledReferences": [
"Mono.Cecil.dll",
"Mono.Cecil.Mdb.dll",
"Mono.Cecil.Pdb.dll",
"Mono.Cecil.Rocks.dll",
"Netick.dll",
"Netick.Unity.dll",
"Netick.CodeGen.dll",
"Unity.Netick.CodeGen.dll"
],
"autoReferenced": false,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 71f67db1ca868524aaf401e71f47bf52
AssemblyDefinitionImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: b8756eabac565c8448a006d6596cfae0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: cb21d7f12495d1e468d3074021834b42
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -0,0 +1,136 @@
fileFormatVersion: 2
guid: f01bfba6a16759f48bb01b524722d8a8
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 01b9bf6bb3196a546b86962161fb0cf8
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

8
Netick/Runtime.meta Normal file
View File

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

View File

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

Binary file not shown.

View File

@@ -0,0 +1,88 @@
fileFormatVersion: 2
guid: d8b22096e0cd05d438a5ce5c8c476dde
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: OSXIntel
second:
enabled: 0
settings:
CPU: None
- first:
: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
CPU: x86_64
DefaultValueInitialized: true
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
- first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: x86_64
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,101 @@
fileFormatVersion: 2
guid: 2c08207c2b3231b44b4d0e0b3f192720
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Editor: 0
Exclude Linux: 1
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude OSXUniversal: 1
Exclude Win: 0
Exclude Win64: 0
- first:
: OSXIntel
second:
enabled: 0
settings:
CPU: None
- first:
: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: x86_64
DefaultValueInitialized: true
OS: AnyOS
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
- first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: x86_64
- first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win
second:
enabled: 1
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,101 @@
fileFormatVersion: 2
guid: ea612cd63b7675e45a42fb9dfe0f1130
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
: Any
second:
enabled: 0
settings:
Exclude Editor: 0
Exclude Linux: 0
Exclude Linux64: 0
Exclude LinuxUniversal: 0
Exclude OSXUniversal: 0
Exclude Win: 1
Exclude Win64: 0
- first:
: OSXIntel
second:
enabled: 0
settings:
CPU: None
- first:
: OSXIntel64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
CPU: x86_64
DefaultValueInitialized: true
OS: AnyOS
- first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
- first:
Facebook: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: Linux
second:
enabled: 1
settings:
CPU: None
- first:
Standalone: Linux64
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: LinuxUniversal
second:
enabled: 1
settings:
CPU: AnyCPU
- first:
Standalone: OSXUniversal
second:
enabled: 1
settings:
CPU: x86_64
- first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
- first:
Standalone: Win64
second:
enabled: 1
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: da78c2c9df60edc4fb5f65b59fa57c41
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,677 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Netick.Unity</name>
</assembly>
<members>
<member name="T:Netick.Unity.NetworkRigidbody">
<summary>
This component is used to replicate the position and rotation of an object. Therefore, its the same as the Network Transform, the difference is that Network Rigidbody must be used if you want to have client-side prediction over PhysX objects since it replicates several other properties necessary for correct prediction.
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.InitializePool(UnityEngine.GameObject,System.Int32,System.Boolean)">
<summary>
Initializes the pool for the specified prefab. After this method has been called for a certain prefab, all instances of that prefab will be recycled and reset when created/destroyed.
<para>Note: this method should only be called on <see cref="M:Netick.Unity.NetworkEventsListener.OnStartup(Netick.Unity.NetworkSandbox)"/>, in other words, just after Netick has been started. </para>
</summary>
<param name="networkedPrefab">Prefab to enable pooling for.</param>
<param name="preloadedAmount">How many instances to be preloaded.</param>
<param name="hideInactiveMembers">Pass true to hide inactive pool members.</param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.Instantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion)">
<summary>
Instantiates a prefab. This must be called instead of <see cref="M:UnityEngine.Object.Instantiate(UnityEngine.Object)"/> or its variations.
<para>Note: this must be called only for non-networked prefabs. If you want to instantiate a network prefab, use <see cref="!:NetworkInstantiate(GameObject, Vector3, Quaternion, NetworkPlayer)"/> instead.</para>
</summary>
<param name="prefab">The prefab to be instantiated.</param>
<param name="position">GridIndex of the instantiated object.</param>
<param name="rotation">Rotation of the instantiated object.</param>
<returns></returns>
</member>
<member name="M:Netick.Unity.NetworkSandbox.NetworkInstantiate(UnityEngine.GameObject,UnityEngine.Vector3,UnityEngine.Quaternion,Netick.NetworkPlayer,Netick.SpawnPredictionKey)">
<summary>
Instantiates a network prefab.
<para>Commonly, this should only be called on the server, since only the server can instantiate network prefabs. However, the client can also call this to spawn-predict a prefab by providing a spawn key which must be the same on the server and client when this method is called. Read the docs to learn more about how to use spawn-prediction.</para>
<para>Note: make sure the prefab has been registered. </para>
<para>Note: the specified input source will be given to every <see cref="T:Netick.Unity.NetworkObject"/> child of this prefab.</para>
</summary>
<param name="prefab">The prefab to be instantiated.</param>
<param name="position">GridIndex of the instantiated object.</param>
<param name="rotation">Rotation of the instantiated object.</param>
<param name="inputSource">Input source of the instantiated object.</param>
<returns></returns>
</member>
<member name="M:Netick.Unity.NetworkSandbox.Destroy(Netick.Unity.NetworkObject)">
/// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
<summary>
Destroys a network object. Only call this on the server or on the client for spawn-predicted objects which have -1 Ids.
<para>Note: never call this on a child <see cref="T:Netick.Unity.NetworkObject"/> of the original prefab, only the root of the prefab.</para>
</summary>
<param name="obj">The object to destroy.</param>
<returns></returns>
</member>
<member name="P:Netick.Unity.NetworkSandbox.IsServer">
<summary>
Returns true if this <see cref="T:Netick.Unity.NetworkSandbox"/> is the server.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.IsClient">
<summary>
Returns true if this <see cref="T:Netick.Unity.NetworkSandbox"/> is a client.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.IsHost">
<summary>
Returns true if this <see cref="T:Netick.Unity.NetworkSandbox"/> is a host.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.Config">
<summary>
Configuration data for Netick.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.UserObject">
<summary>
Use this to associate an object with this sandbox.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.Physics2D">
<summary>
The <see cref="T:UnityEngine.PhysicsScene2D"/> associated with this <see cref="T:Netick.Unity.NetworkSandbox"/>. Always use this to perform physics queries inside the sandbox instead of <see cref="T:UnityEngine.Physics2D"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.Physics">
<summary>
The <see cref="T:UnityEngine.PhysicsScene"/> associated with this <see cref="T:Netick.Unity.NetworkSandbox"/>. Always use this to perform physics queries inside the sandbox instead of <see cref="T:UnityEngine.Physics"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.Scene">
<summary>
The <see cref="T:UnityEngine.SceneManagement.Scene"/> associated with this <see cref="T:Netick.Unity.NetworkSandbox"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.IsRunning">
<summary>
Returns true if this <see cref="T:Netick.Unity.NetworkSandbox"/> has been started.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.ServerEndPoint">
<summary>
<i><b>[Client Only]</b></i> The <see cref="!:IPEndPoint"/> of the server you are connected to. Returns null if you are not connected to any server, or if you are the server.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.IsConnected">
<summary>
<i><b>[Client Only]</b></i> Returns true if this client is currently connected to a server.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.ConnectedClients">
<summary>
A list containing all connected clients currently.
<para>Note: if you want the clients + the server, use <see cref="P:Netick.Unity.NetworkSandbox.ConnectedPlayers"/>.</para>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.ConnectedPlayers">
<summary>
<para>A list containing all connected clients currently, in addition to the server (when started as a host).</para>
<para>Note: if you only want the clients, use <see cref="P:Netick.Unity.NetworkSandbox.ConnectedClients"/>.</para>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.ConnectedServer">
<summary>
The server the client is connected to.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.Objects">
<summary>
A list containing all simulated/registered network objects [<see cref="T:Netick.Unity.NetworkObject"/>] currently.
<para>Note: to get a network object by id, use: <see cref="M:Netick.Unity.NetworkSandbox.TryGetObject(System.Int32,Netick.Unity.NetworkObject@)"/> </para>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.LocalPlayer">
<summary>
This player.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.FixedDeltaTime">
<summary>
Time period between network simulation steps. Same as <see cref="P:UnityEngine.Time.fixedDeltaTime"/>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.Tick">
<summary>
Current simulation tick.
<para>On the server, <b>it's always going forward/increasing.</b></para>
<para>On the client, <b>during resimulations it returns the current resimulated tick. </b> To check for resimulations, use <see cref="P:Netick.Unity.NetworkSandbox.IsResimulating"/>.</para>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.AuthoritativeTick">
<summary>
Last received tick on the client. On the server, it returns the same value as <see cref="!:Sandbox.Tick."/>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.PredictedTick">
<summary>
Last predicted tick.
<para>On the client, <b>it always returns the predicted tick of the client, regardless of whether it's a resimulation or not.</b></para>
<para>On the server, <b>it returns the same value as Sandbox.Tick</b></para>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.IsResimulating">
<summary>
Returns true if we are currently resimulating a previous input/tick of the past. On the server, it always returns false since <b>only the clients resimulate</b>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.InKBps">
<summary>
Incoming data in kilobytes per second (KBps).
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.OutKBps">
<summary>
Outgoing data in kilobytes per second (KBps).
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.InterpolationDelay">
<summary>
<i><b>[Client Only]</b></i> Interpolation delay in seconds.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.RTT">
<summary>
<i><b>[Client Only]</b></i> The round-trip time (RTT) of the client in seconds.
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.CurrentRpcSource">
<summary>
Always always returns null except when called inside the body of an RPC method, it returns the <see cref="T:Netick.NetworkConnection"/> we are executing RPCs from.
</summary>
<returns></returns>
</member>
<member name="P:Netick.Unity.NetworkSandbox.PostNetworkFixedUpdate">
<summary>
Called after all NetworkFixedUpdate methods have been executed.
<para>Note: it's called with every resimulation on the client.</para>
</summary>
</member>
<member name="P:Netick.Unity.NetworkSandbox.PreNetworkFixedUpdate">
<summary>
Called before any NetworkFixedUpdate method have been executed.
<para>Note: it's called with every resimulation on the client.</para>
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.GetObject(System.Int32)">
<summary>
Gets the <see cref="T:Netick.Unity.NetworkObject"/> with the specified id. Returns null in case no object with that id exists.
</summary>
<param name="id"> The id of the <see cref="T:Netick.Unity.NetworkObject"/></param>
<returns></returns>
</member>
<member name="M:Netick.Unity.NetworkSandbox.TryGetObject(System.Int32,Netick.Unity.NetworkObject@)">
<summary>
Tries to get the <see cref="T:Netick.Unity.NetworkObject"/> with the specified id.
</summary>
<param name="id"> The id of the <see cref="T:Netick.Unity.NetworkObject"/></param>
<returns></returns>
</member>
<member name="M:Netick.Unity.NetworkSandbox.TryGetBehaviour``1(System.Int32,``0@)">
<summary>
Tries to get the <see cref="T:Netick.Unity.NetworkBehaviour"/> of a <see cref="T:Netick.Unity.NetworkObject"/> with the specified id.
</summary>
<param name="id"> The id of the network object</param>
<returns></returns>
</member>
<member name="M:Netick.Unity.NetworkSandbox.TickToTime(Netick.Tick)">
<summary>
Converts <paramref name="tick"/> to time in seconds.
</summary>
<param name="tick"></param>
<returns></returns>
</member>
<member name="M:Netick.Unity.NetworkSandbox.TickToTime(System.Single)">
<summary>
Converts <paramref name="tick"/> to time in seconds.
</summary>
<param name="tick"></param>
<returns></returns>
</member>
<member name="M:Netick.Unity.NetworkSandbox.AttachBehaviour(Netick.Unity.NetickBehaviour)">
<summary>
Attachs a <see cref="T:Netick.Unity.NetickBehaviour"/> to the simulation.
</summary>
<param name="behaviour"></param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.DeattachBehaviour(Netick.Unity.NetickBehaviour)">
<summary>
Deattachs a <see cref="T:Netick.Unity.NetickBehaviour"/> from the simulation.
</summary>
<param name="behaviour"></param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.Connect(System.Int32,System.String,System.Byte[],System.Int32)">
<summary>
<i><b>[Client Only]</b></i> Connects to a remote server.
<para>Note: if you are already connected to a server, and you want to connect to a different one, you have to disconnect before calling this. Otherwise this method does nothing.</para>
<para>Note: connectionData array length should not be more than 300 if you are using Netick Transport.</para>
</summary>
<param name="ip">IP address of the server.</param>
<param name="port">Port of the server.</param>
<param name="connectionData">Data sent with the connection request. Could be used to decide whether or not to allow the connection.</param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.Kick(Netick.ServerConnection)">
<summary>
<i><b>[Server Only]</b></i> Disconnects a client from the server.
</summary>
<param name="client">The client to be disconnected.</param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.DisconnectFromServer">
<summary>
<i><b>[Client Only]</b></i> Disconnects this client from the server.
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.CreateMatch(System.String)">
<summary>
<i><b>[Server Only]</b></i> Creates a match. Only functional if the low-level transport has support for matchmaking.
</summary>
<param name="name">Name of the match.</param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.RefreshMatchList">
<summary>
Requests an update to the match list. Only functional if the low-level transport has support for matchmaking.
</summary>
</member>
<member name="M:Netick.Unity.NetworkSandbox.SwitchScene(System.Int32)">
<summary>
<i><b>[Server Only]</b></i> Switches to a different scene. This must be called instead of <see cref="M:UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(System.Int32)"/> or its variations.
</summary>
<param name="sceneBuildIndex">SceneBuildIndex of the desired scene.</param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.UnloadSceneAsync(System.Int32)">
<summary>
Unloads a scene asynchronously.
</summary>
<param name="buildIndex"></param>
</member>
<member name="M:Netick.Unity.NetworkSandbox.GetPrefab(System.String)">
<summary>
Gets a Network Prefab by name.
<para>Note: this causes GC.</para>
</summary>
<param name="name"></param>
<returns>The Network Prefab</returns>
</member>
<member name="T:Netick.Unity.NetworkRigidbody2D">
<summary>
This component is used to replicate the position and rotation of an object. Therefore, its the same as the Network Transform, the difference is that Network Rigidbody 2D must be used if you want to have client-side prediction over Box2D objects since it replicates several other properties necessary for correct prediction.
</summary>
</member>
<member name="T:Netick.Unity.NetworkObject">
<summary>
Any GameObject which needs to be synced/replicated must have a Network Object component. Its the component that tells Netick a GameObject is networked. Although not every child GameObject needs it, only the root has to have a Network Object.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.SpawnTick">
<summary>
The tick which this object was spawned at.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.Parent">
<summary>
The <see cref="T:Netick.Unity.NetworkObject"/> parent of this object.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.IsClient">
<summary>
Returns true if this <see cref="P:Netick.Unity.NetworkObject.Engine"/> is a client.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.IsServer">
<summary>
Returns true if this <see cref="P:Netick.Unity.NetworkObject.Engine"/> is the server.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.IsOwner">
<summary>
Returns true if this <see cref="P:Netick.Unity.NetworkObject.Engine"/> is the owner of this Object. In this version of Netick: Server=Owner.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.IsInputSource">
<summary>
Returns true if this <see cref="P:Netick.Unity.NetworkSandbox.LocalPlayer"/> is providing inputs for this <see cref="T:Netick.Unity.NetworkObject"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.IsProxy">
<summary>
Returns true if we neither provide inputs nor own this <see cref="T:System.Object"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.InputSource">
<summary>
Returns the source <see cref="T:Netick.NetworkPlayer"/> (<see cref="T:Netick.NetworkPeer"/>/<see cref="T:Netick.ServerConnection"/>) of inputs for this <see cref="T:Netick.Unity.NetworkObject"/>. If the source of inputs is remote (from a client) it returns that <see cref="T:Netick.ServerConnection"/>, while on the
input source itself it returns the local <see cref="T:Netick.NetworkPlayer"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.InterestGroup">
<summary>
The interest group of this object. This can only be changed if BroadPhaseFilter is set to Custom.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.IsResimulating">
<summary>
Returns true if we are currently resimulating a previous input of the past. On the server, it always returns false since <b>only the clients resimulate</b>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkObject.HasValidId">
<summary>
Returns true if this <see cref="T:Netick.Unity.NetworkObject"/> has been added to the simulation by Netick, and thus has a valid id.
</summary>
</member>
<member name="M:Netick.Unity.NetworkObject.SetParent(Netick.Unity.NetworkObject)">
<summary>
<i><b>[Owner/InputSource Only]</b></i> Changes the parent of this object.
</summary>
<param name="obj">The object which will become the parent of this object.</param>
</member>
<member name="T:Netick.Unity.SingleInstanceEnforcer">
<summary>
Add this component to a GameObject to ensure only a single instance of it will exist at the same time, across all sandboxes.
</summary>
</member>
<member name="T:Netick.Unity.NetickConfig">
<summary>
Config class for Netick.
</summary>
</member>
<member name="P:Netick.Unity.NetickBehaviour.Sandbox">
<summary>
The <see cref="T:Netick.Unity.NetworkSandbox"/> containing this <see cref="P:Netick.Unity.NetickBehaviour.Object"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetickBehaviour.Object">
<summary>
The <see cref="T:Netick.Unity.NetworkObject"/> this behaviour is attached to.
</summary>
</member>
<member name="M:Netick.Unity.NetickBehaviour.NetworkStart">
<summary>
Called when this behaviour has been added to the simulation.
</summary>
</member>
<member name="M:Netick.Unity.NetickBehaviour.NetworkDestroy">
<summary>
Called when this behaviour has been removed from the simulation.
</summary>
</member>
<member name="M:Netick.Unity.NetickBehaviour.NetworkUpdate">
<summary>
Called every frame. Executed before NetworkFixedUpdate.
</summary>
</member>
<member name="M:Netick.Unity.NetickBehaviour.NetworkFixedUpdate">
<summary>
Called every fixed-time network update/tick. Any changes/updates to the network state must happen here.
<para>On the client, if you are the Input Source or if this Object.PredictionMode is set to None, it will be called several times in one update/tick during resimulations. To check for resimulations, use [<see cref="!:IsResimulating"/>].</para>
</summary>
</member>
<member name="M:Netick.Unity.NetickBehaviour.NetworkRender">
<summary>
Called every frame. Executed after NetworkUpdate and NetworkFixedUpdate.
</summary>
<para>IMPORTANT NOTE: properties (which can be interpolated) marked with [<see cref="T:Netick.Smooth"/>] attribute will return interpolated values when accessed in this method.</para>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.BehaviourId">
<summary>
The network id of this <see cref="T:Netick.Unity.NetworkBehaviour"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.Id">
<summary>
The network id of this <see cref="T:System.Object"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.IsClient">
<summary>
Returns true if this <see cref="T:Netick.NetickEngine"/> is a client.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.IsServer">
<summary>
Returns true if this <see cref="T:Netick.NetickEngine"/> is the server.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.IsOwner">
<summary>
Returns true if this <see cref="T:Netick.NetickEngine"/> is the owner of this Object. In this version of Netick: Server=Owner.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.IsInputSource">
<summary>
Returns true if this <see cref="P:Netick.Unity.NetworkSandbox.LocalPlayer"/> is providing inputs to this Object.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.IsProxy">
<summary>
Returns true if we neither provide inputs nor own this <see cref="T:System.Object"/>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.IsResimulating">
<summary>
Returns true if we are currently resimulating a previous input of the past. On the server, it always returns false since <b>only the clients resimulate</b>.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.IsPredicted">
<summary>
On the client, it returns true only if the client is predicting this object. On the server, it always returns true.
</summary>
</member>
<member name="P:Netick.Unity.NetworkBehaviour.InputSource">
<summary>
Returns the source <see cref="T:Netick.NetworkPlayer"/> (<see cref="T:Netick.NetworkPeer"/>/<see cref="T:Netick.ServerConnection"/>) of inputs for this <see cref="T:Netick.Unity.NetworkObject"/>. If the source of inputs is remote (from a client) it returns that <see cref="T:Netick.ServerConnection"/>, while on the
input source itself it returns the local <see cref="T:Netick.NetworkPlayer"/>.
</summary>
</member>
<member name="M:Netick.Unity.NetworkBehaviour.FetchInput``1(``0@,System.Int32)">
<summary>
Fetchs a network input for this tick. Returns false if no input source is currently providing inputs to this Object, or when input loss occurs (in case of a remote input source).
</summary>
</member>
<member name="M:Netick.Unity.NetworkBehaviour.OnInputSourceLeft">
<summary>
Called on the server when the input source of this Object has disconnected.
</summary>
</member>
<member name="M:Netick.Unity.NetworkBehaviour.OnSpawnPredictionSucceeded">
<summary>
Called on the client when the server confirms that this object has been successfully spawn-predicted and therefore has a valid SceneLoadId.
</summary>
</member>
<member name="T:Netick.Unity.NetworkAnimator">
<summary>
This component is used to replicate Unity's Animator parameters and states.
</summary>
</member>
<member name="T:Netick.Unity.Network">
<summary>
Manages Netick and its clients, and is used to start and shut down Netick.
</summary>
</member>
<member name="M:Netick.Unity.Network.Init(Netick.Unity.NetickConfig,System.Int32)">
<summary>
Initializes Netick. This is automatically called when you start Netick.
<para>If you don't provide a <see cref="T:Netick.Unity.NetickConfig"/>, Netick will use the default config, which can be modified/found in (Netick -> Settings).</para>
</summary>
<param name="transport"></param>
</member>
<member name="M:Netick.Unity.Network.Shutdown(System.Boolean)">
<summary>
Shuts down Netick and destroys all clients. The shutdown will occur in the next frame. For immediate shutdown, use: <see cref="M:Netick.Unity.Network.ShutdownImmediately(System.Boolean)"/>
</summary>
</member>
<member name="M:Netick.Unity.Network.ShutdownImmediately(System.Boolean)">
<summary>
Shuts down Netick and destroys all clients immediately.
</summary>
</member>
<member name="M:Netick.Unity.Network.ShutdownSandbox(Netick.Unity.NetworkSandbox,System.Boolean)">
<summary>
Shuts down a specific sandbox.
</summary>
<param name="sandbox">The sandbox to shut down.</param>
</member>
<member name="M:Netick.Unity.Network.Focus(Netick.Unity.NetworkSandbox)">
<summary>
Focus on a specific sandbox.
</summary>
<param name="sandbox">The sandbox to focus on.</param>
</member>
<member name="M:Netick.Unity.Network.StartAsServerAndClient(Netick.Unity.NetworkTransportProvider,System.Int32,UnityEngine.GameObject,System.Int32)">
<summary>
Starts both a client (or clients) and a server.
</summary>
<param name="serverPort">Network port.</param>
<param name="numOfClients">Number of client sandboxes to create.</param>
<returns></returns>
</member>
<member name="M:Netick.Unity.Network.StartAsMultiplePeers(Netick.Unity.NetworkTransportProvider,System.Int32,UnityEngine.GameObject,System.Boolean,System.Boolean,System.Int32)">
<summary>
Starts multiple peers together.
</summary>
<param name="serverPort">Network port.</param>
<param name="numOfClients">Number of client clients to create.</param>
<param name="startAServer">Should we start a server too.</param>
<returns></returns>
</member>
<member name="M:Netick.Unity.Network.StartAsClient(Netick.Unity.NetworkTransportProvider,System.Int32,UnityEngine.GameObject)">
<summary>
Starts Netick as a client.
</summary>
<returns>The sandbox representing the client</returns>
</member>
<member name="M:Netick.Unity.Network.StartAsSinglePlayer(UnityEngine.GameObject)">
<summary>
Starts Netick in single player mode.
</summary>
<returns>The sandbox representing the server</returns>
</member>
<member name="M:Netick.Unity.Network.StartAsHost(Netick.Unity.NetworkTransportProvider,System.Int32,UnityEngine.GameObject)">
<summary>
Starts Netick as a host.
</summary>
<param name="port">Network port.</param>
<returns>The sandbox representing the server</returns>
</member>
<member name="M:Netick.Unity.Network.StartAsServer(Netick.Unity.NetworkTransportProvider,System.Int32,UnityEngine.GameObject)">
<summary>
Starts Netick as a server.
</summary>
<param name="port">Network port.</param>
<returns>The sandbox representing the server</returns>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnConnectRequest(Netick.Unity.NetworkSandbox,Netick.NetworkConnectionRequest)">
<summary>
Called on the server when a client tries to connect. Use <paramref name="request"/> to decide whether or not to allow this client to connect.
</summary>
<param name="sandbox"></param>
<param name="request"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnConnectFailed(Netick.Unity.NetworkSandbox,Netick.ConnectionFailedReason)">
<summary>
Called on the client when the connection to the server was refused, or simply failed.
</summary>
<param name="sandbox"></param>
<param name="reason"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnInput(Netick.Unity.NetworkSandbox)">
<summary>
Called to read inputs.
</summary>
<param name="sandbox"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnStartup(Netick.Unity.NetworkSandbox)">
<summary>
Called when Netick has been started.
</summary>
<param name="sandbox"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnShutdown(Netick.Unity.NetworkSandbox)">
<summary>
Called when Netick has been shut down.
</summary>
<param name="sandbox"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnSceneLoaded(Netick.Unity.NetworkSandbox)">
<summary>
Called on both the client and the server when the scene has been loaded.
</summary>
<param name="sandbox"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnSceneLoadStarted(Netick.Unity.NetworkSandbox)">
<summary>
Called on both the client and the server before beginning to load the new scene.
</summary>
<param name="sandbox"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnClientSceneLoaded(Netick.Unity.NetworkSandbox,Netick.NetworkConnection)">
<summary>
Called on the server when a specific client finished loading the scene.
</summary>
<param name="sandbox"></param>
<param name="client"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnConnectedToServer(Netick.Unity.NetworkSandbox,Netick.NetworkConnection)">
<summary>
Called on the client when connection to the server has been initiated.
</summary>
<param name="sandbox"></param>
<param name="server"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnDisconnectedFromServer(Netick.Unity.NetworkSandbox,Netick.NetworkConnection,Netick.TransportDisconnectReason)">
<summary>
Called on the client when connection to the server ended, or when a network error caused the disconnection.
</summary>
<param name="sandbox"></param>
<param name="server"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnClientConnected(Netick.Unity.NetworkSandbox,Netick.NetworkConnection)">
<summary>
Called on the server when a specific client has connected.
</summary>
<param name="sandbox"></param>
<param name="client"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnClientDisconnected(Netick.Unity.NetworkSandbox,Netick.NetworkConnection,Netick.TransportDisconnectReason)">
<summary>
Called on the server when a specific client has disconnected.
</summary>
<param name="sandbox"></param>
<param name="client"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnPlayerConnected(Netick.Unity.NetworkSandbox,Netick.NetworkPlayer)">
<summary>
Called on the server when a specific player has connected.
</summary>
<param name="sandbox"></param>
<param name="client"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnPlayerDisconnected(Netick.Unity.NetworkSandbox,Netick.NetworkPlayer,Netick.TransportDisconnectReason)">
<summary>
Called on the server when a specific player has disconnected.
</summary>
<param name="sandbox"></param>
<param name="client"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnObjectCreated(Netick.Unity.NetworkObject)">
<summary>
Called when a network object has been created/initialized.
</summary>
<param name="entity"></param>
</member>
<member name="M:Netick.Unity.NetworkEventsListener.OnObjectDestroyed(Netick.Unity.NetworkObject)">
<summary>
Called when a network object has been destroyed/recycled.
</summary>
<param name="entity"></param>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 737b6e987987cc24fb3fa7bcfd2473cb
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Netick/Runtime/Netick.dll Normal file

Binary file not shown.

View File

@@ -0,0 +1,33 @@
fileFormatVersion: 2
guid: 75145785847c5c04b8a66abc87a456e0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

441
Netick/Runtime/Netick.xml Normal file
View File

@@ -0,0 +1,441 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Netick</name>
</assembly>
<members>
<member name="M:Netick.NetickTransport.OnConnectRequest(Netick.NetworkConnectionRequest)">
-------------------------------
</member>
<member name="T:Netick.SequenceId">
<summary>
A rolling sequence counter for ordering values. Repeats indefinitely
with 1022 possible unique values (0 is treated as invalid internally).
Consumes 10 bits when encoded for transmission.
</summary>
</member>
<member name="M:Netick.IGameEngine.GetConnectionMetaSizeWords">
<summary>
Implements this to inform Netick about the size (in 32 bit words) of your connection meta data.
</summary>
<returns></returns>
</member>
<member name="M:Netick.IGameEngine.GetEntityMetaSizeWords">
<summary>
Implements this to inform Netick about the size (in 32 bit words) of your entity meta data.
</summary>
<returns></returns>
</member>
<member name="M:Netick.IGameEngine.OnEntitySpawned(Netick.Entity)">
<summary>
This is called when a new entity has been added to the simulation.
</summary>
<param name="entity"></param>
</member>
<member name="M:Netick.IGameEngine.OnEntityDespawned(Netick.Entity)">
<summary>
This is called when an entity has been removed from the simulation.
</summary>
<param name="entity"></param>
</member>
<member name="M:Netick.IGameEngine.OnUnlinkedEntityDespawned(Netick.Entity)">
<summary>
This is called when an unliked entity has been removed from the simulation.
</summary>
<param name="entity"></param>
</member>
<member name="M:Netick.IGameEngine.PopulateEntityMeta(Netick.Entity)">
<summary>
This is used to populate the user meta data for an entity.
</summary>
<param name="entity"></param>
</member>
<member name="M:Netick.IGameEngine.OnEntityMetaChanged(Netick.NetickEntityMeta,System.Byte*,System.Int32)">
<summary>
This method is called on the client when it receives new entity meta data. This must be used to create/setup network entities on the client. It can be called many times not only when the data has changed.
<para>Note: user entity meta data can be used for custom user data that might be used in creating entities.</para>
</summary>
<param name="netickMeta"></param>
<param name="userMetaData"></param>
</member>
<member name="M:Netick.IGameEngine.OnBeforeSend(Netick.NetworkConnection)">
<summary>
This is called before sending packets to the target connection.
</summary>
<param name="target"></param>
</member>
<member name="M:Netick.IGameEngine.OnPacketReceived(Netick.NetworkConnection)">
<summary>
This is called when a full packet has been received.
</summary>
<param name="source"></param>
</member>
<member name="T:Netick.INetickScript">
<summary>
A script which can be added to Netick internal simulation loop.
</summary>
</member>
<member name="M:Netick.INetickScript.Initialize(Netick.NetickEngine)">
<summary>
Used to initialize the user script and assign Engine.
</summary>
<param name="netickEngine"></param>
</member>
<member name="M:Netick.INetickScript.NetworkStart">
<summary>
Called when this script has been added to the simulation.
</summary>
</member>
<member name="M:Netick.INetickScript.NetworkDestroy">
<summary>
Called when this script has been removed from the simulation.
</summary>
</member>
<member name="M:Netick.INetickScript.NetworkUpdate">
<summary>
Called every frame. Executed before NetworkFixedUpdate.
</summary>
</member>
<member name="M:Netick.INetickScript.NetworkFixedUpdate">
<summary>
Called every fixed-time network update/tick. Any changes/updates to the network state must happen here.
<para>On the client, if you are the Input Source or if this Entity.PredictionMode is set to None, it will be called several times in one update/tick during resimulations. To check for resimulations, use [<see cref="P:Netick.Entity.IsResimulating"/>].</para>
</summary>
</member>
<member name="M:Netick.INetickScript.NetworkRender">
<summary>
Called every frame. Executed after NetworkUpdate and NetworkFixedUpdate.
</summary>
</member>
<member name="T:Netick.INetickNetworkScript">
<summary>
A network scripts which can have networked properties and rpcs.
</summary>
</member>
<member name="M:Netick.INetickEntity.Initialize(Netick.NetickEngine,Netick.Entity)">
<summary>
Used to initialize the user entity and assign Engine and Entity
</summary>
<param name="netickEngine"></param>
<param name="entity"></param>
</member>
<member name="M:Netick.NotServerException.#ctor">
<summary>
Constructs a NotServerException
</summary>
</member>
<member name="M:Netick.NotServerException.#ctor(System.String)">
<summary>
Constructs a NotServerException with a message
</summary>
<param name="message">The exception message</param>
</member>
<member name="M:Netick.NotServerException.#ctor(System.String,System.Exception)">
<summary>
Constructs a NotServerException with a message and a inner exception
</summary>
<param name="message">The exception message</param>
<param name="inner">The inner exception</param>
</member>
<member name="T:Netick.OnChanged">
<summary>
Use this attribute on a method you want to call when a specific property value changes. Example: [OnChanged(nameof(PropertyName)]
</summary>
</member>
<member name="T:Netick.Rpc">
<summary>
Use this attribute on any method you want to make an RPC. Should have the return type of void, and not be static.
<para> * Use the parameter "source" to specify who is allowed to send this RPC.</para>
<para> * Use the parameter "target" to specify who is allowed to receive and execute this RPC.</para>
<para> * Use the parameter "isReliable" to specify if this Rpc should be reliable or not, meaning it won't be lost (due to packet loss).</para>
<para> * Use the parameter "localInvoke" to specify if this Rpc should be executed on the machine it was called from.</para>
</summary>
</member>
<member name="P:Netick.OnChangedData.InvokedForMisprediction">
<summary>
Returns true if this OnChanged callback is due to a mismatch between the state of this variable before rollback, and the state after rollback and resimulation.
</summary>
</member>
<member name="M:Netick.OnChangedData.GetPreviousNetworkLinkedList``1(Netick.NetworkLinkedList{``0})">
<summary>
Gets a snapshot of the previous state of a NetworkLinkedList collection.
</summary>
<returns></returns>
</member>
<member name="M:Netick.OnChangedData.GetPreviousNetworkQueue``1(Netick.NetworkQueue{``0})">
<summary>
Gets a snapshot of the previous state of a NetworkQueue collection.
</summary>
<returns></returns>
</member>
<member name="M:Netick.OnChangedData.GetPreviousNetworkStack``1(Netick.NetworkStack{``0})">
<summary>
Gets a snapshot of the previous state of a NetworkStack collection.
</summary>
<returns></returns>
</member>
<member name="M:Netick.OnChangedData.GetPreviousValue``1">
<summary>
Gets previous value for the changed network property.
<para>Note: this must only be used with non-array network properties. For arrays, use <see cref="M:Netick.OnChangedData.GetArrayPreviousElementValue``1(System.Int32)"/> instead. </para>
</summary>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="M:Netick.OnChangedData.GetPreviousValueAsPointer">
<summary>
Gets a pointer to the previous value
</summary>
<returns></returns>
</member>
<member name="M:Netick.OnChangedData.GetArrayChangedElementIndex">
<summary>
Gets the index of the changed element of the array.
</summary>
<returns></returns>
</member>
<member name="M:Netick.OnChangedData.GetArrayPreviousElementValue``1(System.Int32)">
<summary>
Gets the value of the changed element of the array. This is an unsafe method, use it carefully and make sure to never go outside range to avoid a crash.
</summary>
<returns></returns>
</member>
<member name="M:Netick.OnChangedData.GetArrayPreviousElementValue``1">
<summary>
Gets the index of the changed element of the array.
</summary>
<typeparam name="T"></typeparam>
<returns></returns>
</member>
<member name="T:Netick.Interpolator">
<summary>
A struct that is used to obtain interpolation data for a network property.
</summary>
</member>
<member name="M:Netick.Interpolator.GetInterpolationData``1(Netick.InterpolationSource,``0@,``0@,System.Single@)">
<summary>
Tries to obtain interpolation data for this frame.
</summary>
<param name="interpolationSource"></param>
<param name="from"></param>
<param name="to"></param>
<param name="alpha"></param>
<returns>Returns true if there was interpolation data for this frame.</returns>
</member>
<member name="M:Netick.Interpolator.GetInterpolationData``1(Netick.InterpolationSource,System.Int32,``0@,``0@,System.Single@)">
<summary>
Tries to obtain interpolation data for this frame. This is the array version.
</summary>
<param name="interpolationSource"></param>
<param name="from"></param>
<param name="to"></param>
<param name="alpha"></param>
<returns>Returns true if there was interpolation data for this frame.</returns>
</member>
<member name="T:Netick.Interpolation">
<summary>
A class representing an abstract interpolation interface, which is implemented by <see cref="T:Netick.RemoteInterpolation"/> and <see cref="T:Netick.LocalInterpolation"/>
</summary>
</member>
<member name="T:Netick.LocalInterpolation">
<summary>
A class representing the local interpolation of this instance <see cref="T:Netick.NetickEngine"/>. This should be used whenever you want to use Predicted Timeline on the client.
</summary>
</member>
<member name="P:Netick.LocalInterpolation.Time">
<summary>
Time in seconds.
</summary>
</member>
<member name="T:Netick.RemoteInterpolation">
<summary>
A class representing the remote interpolation of this instance <see cref="T:Netick.NetickEngine"/>. This should be used whenever you want to use Remote Timeline on the client.
</summary>
</member>
<member name="P:Netick.RemoteInterpolation.CurrentBufferTime">
<summary>
Interpolation time in seconds.
</summary>
</member>
<member name="P:Netick.RemoteInterpolation.Time">
<summary>
Time in seconds.
</summary>
</member>
<member name="P:Netick.AdaptiveRemoteInterpolation.CurrentBufferTime">
<summary>
Interpolation time in seconds.
</summary>
</member>
<member name="P:Netick.AdaptiveRemoteInterpolation.Time">
<summary>
Time in seconds.
</summary>
</member>
<member name="M:Netick.NetworkRpc.InternalIsResim(Netick.NetickEngine)">
<summary>
Internal method. Never call this.
</summary>
</member>
<member name="M:Netick.NetworkRpc.InternalCreateRpc(Netick.NetickEngine,Netick.NetworkConnection,System.Int32,Netick.INetickNetworkScript,System.Boolean,Netick.RpcPeers,System.Int32)">
<summary>
Internal method. Never call this.
</summary>
</member>
<member name="M:Netick.NetworkRpc.InternalCanSend(Netick.NetickEngine,Netick.Entity,Netick.RpcPeers,Netick.RpcPeers,System.Int32)">
<summary>
Internal method. Never call this.
</summary>
</member>
<member name="M:Netick.NetworkRpc.InternalCanInvoke(Netick.NetickEngine,Netick.Entity,Netick.RpcPeers,Netick.RpcPeers,System.Boolean,System.Int32)">
<summary>
Internal method. Never call this.
</summary>
</member>
<member name="M:Netick.NotClientException.#ctor">
<summary>
Constructs a NotClientException
</summary>
</member>
<member name="M:Netick.NotClientException.#ctor(System.String)">
<summary>
Constructs a NotClientException with a message
</summary>
<param name="message">The exception message</param>
</member>
<member name="M:Netick.NotClientException.#ctor(System.String,System.Exception)">
<summary>
Constructs a NotClientException with a message and a inner exception
</summary>
<param name="message">The exception message</param>
<param name="inner">The inner exception</param>
</member>
<member name="M:Netick.BadPacketException.#ctor">
<summary>
Constructs a BadPacketException
</summary>
</member>
<member name="F:Netick.CustomizableSocketTransport._connectRequestBuffer">
----------------------------------------------------
</member>
<member name="T:Netick.NetworkLinkedListSnapshot`1">
<summary>
A snapshot of the previous state of a NetworkLinkedList collection. Note this must not be used outside the the scope of an OnChanged call.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="T:Netick.NetworkPlayer">
<summary>
Represents a network player, which can be either a local player (representing this sandbox) or a remote connection (representing a connected client)).
</summary>
</member>
<member name="P:Netick.NetworkPlayer.PlayerId">
<summary>
The networked index of this player.
<para>Note: it returns -1 on the client for the local player when not connected to a server.</para>
<para>Note: the server player always has Id 0.</para>
</summary>
</member>
<member name="P:Netick.NetworkPlayer.PlayerObject">
<summary>
Use this to associate an object with this player.
</summary>
</member>
<member name="P:Netick.NetickEngine.ConnectedClients">
<summary>
A list containing all connected clients currently.
<para>Note: if you want the clients + the server, use <see cref="P:Netick.NetickEngine.ConnectedPlayers"/>.</para>
</summary>
</member>
<member name="P:Netick.NetickEngine.ConnectedPlayers">
<summary>
<para>A list containing all connected clients currently, in addition to the server.</para>
<para>Note: if you only want the clients, use <see cref="P:Netick.NetickEngine.ConnectedClients"/>.</para>
</summary>
</member>
<member name="P:Netick.NetickEngine.ServerEndPoint">
<summary>
<i><b>[Client Only]</b></i> The <see cref="T:System.Net.IPEndPoint"/> of the server you are connected to. Returns null if you are not connected to any server, or if you are the server.
</summary>
</member>
<member name="P:Netick.NetickEngine.IsConnected">
<summary>
<i><b>[Client Only]</b></i> Returns true if this client is currently connected to a server.
</summary>
</member>
<member name="P:Netick.NetickEngine.FixedDeltaTime">
<summary>
Time period between simulation ticks.
</summary>
</member>
<!-- Badly formed XML comment ignored for member "P:Netick.NetickEngine.Tick" -->
<member name="P:Netick.NetickEngine.IsResimulating">
<summary>
Returns true if we are currently resimulating a previous input/tick of the past. On the server, it always returns false since <b>only the clients resimulate</b>.
</summary>
</member>
<member name="P:Netick.NetickEngine.InKBps">
<summary>
Incoming data in kilobytes per second (KBps).
</summary>
</member>
<member name="P:Netick.NetickEngine.OutKBps">
<summary>
Outgoing data in kilobytes per second (KBps).
</summary>
</member>
<member name="P:Netick.NetickEngine.InterpolationDelay">
<summary>
<i><b>[Client Only]</b></i> Interpolation delay in seconds.
</summary>
</member>
<member name="P:Netick.NetickEngine.RTT">
<summary>
<i><b>[Client Only]</b></i> The round-trip time (RTT) of the client in seconds.
</summary>
</member>
<member name="M:Netick.NetickEngine.DisconnectFromServer">
<summary>
<i><b>[Client Only]</b></i> Disconnects this client from the server.
</summary>
</member>
<member name="M:Netick.NetickEngine.Update(System.Single,System.Single)">
<summary>
Update Netick's logic.
</summary>
</member>
<member name="M:Netick.NetickEngine.Render">
<summary>
Call this to invoke NetworkRender on simulated entities. This might not be needed if you are running a headless build.
</summary>
</member>
<member name="M:Netick.NetickEngine.AttachBehaviour(Netick.INetickScript)">
<summary>
Attachs a <see cref="T:Netick.INetickScript"/> to the simulation.
</summary>
<param name="behaviour"></param>
</member>
<member name="M:Netick.NetickEngine.DeattachBehaviour(Netick.INetickScript)">
<summary>
Deattachs a <see cref="T:Netick.INetickScript"/> from the simulation.
</summary>
<param name="behaviour"></param>
</member>
<member name="T:Netick.NetworkQueueSnapshot`1">
<summary>
A snapshot of the previous state of a NetworkQueue collection. Note this must not be used outside the the scope of an OnChanged call.
</summary>
<typeparam name="T"></typeparam>
</member>
<member name="F:Netick.ClientSimulation.SimReady">
-------------------------------- -------------------------------- -------------------------------- --------------------------------
</member>
<member name="T:Netick.NetworkStackSnapshot`1">
<summary>
A snapshot of the previous state of a NetworkStack collection. Note this must not be used outside the the scope of an OnChanged call.
</summary>
<typeparam name="T"></typeparam>
</member>
</members>
</doc>

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cb2a241f28b2c3343839c8d573058c22
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

69
README.md Normal file
View File

@@ -0,0 +1,69 @@
# Netick: Networking Engine for Unity
![Netick Pic](https://i.ibb.co/QbCLKD3/Netick-Github.png)
Unity integeration of Netick.
Netick is a server-authoritative C#/.NET networking solution for Unity, and, in fact, for all C#-supporting game engines, it's entirely engine-agnostic. It's the world's highest-performing networking solution for Unity, achieving the lowest bandwidth and CPU usage, proven by third-party open-source benchmarks. Its built with an architecture thats different from other free solutions. Netick makes building quality and cheat-free multiplayer games easier than ever before. Whether it's a competitive CS-like shooter, a 200-player battle royale, or a survival game, Netick can do it.
## Installation
### Prerequisites
You need Unity Editor version 2021 or later.
### Steps
- Open the Unity Package Manager by navigating to Window > Package Manager along the top bar.
- Click the plus icon.
- Select Add package from git URL
- Enter https://github.com/karrarrahim/NetickForUnity.git
- Under Packages in the Package Manager, you should now see Netick with it's current version number.
- You can then import one of the samples to get started.
## Features
* Client-Side Prediction.
* Full and Partial Delta Snapshots.
* Snapshot Interpolation.
* Remote Procedure Calls (RPCs).
* Physics Prediction
* Interest Management [Pro].
* Lag Compensation [Pro].
* Code Gen.
* Zero GC.
And many others.
## Technology and Performance
### Bandwidth
Netick 2 uses an innovative state replication algorithm that moves multiplayer game development forward. Not only does it achieve the lowest bandwidth usage ever seen, but it also simplifies networked games by ensuring full networked state update atomicity. Netick 2 uses a novel approach for Delta Snapshots that makes it possible to use Interest Management and Delta Snapshots together, performatively. This has been unheard of in AAA or indie games, due to the difficulty or impracticality of doing that. However, in Netick 2, it just works.
Netick 2 also lets you fully predict anything in the game: network properties, collections, etc. It also lets you easily interpolate anything. This greatly simplifies development for complicated or demanding projects.
![Benchmark](https://i.ibb.co/3cwvNjk/chart-1.png)
[Source](https://github.com/StinkySteak/unity-netcode-benchmark)
### CPU
Netick 2 core is written with unsafe C# code, achieving the highest level of performance. According to simulated testing, it's able to write 1 packet (each ~1000 bytes) to 200 clients in less than 1.4ms, all in a single core (using any modern Intel CPU). This means the networking CPU cost of your game is as little as possible, leaving you room to do other things in the game. It also means you can have more players than before, with higher tickrate.
## Showcase
![Showcase](https://i.ibb.co/gPMHc7G/netick-games2.png)
## Helpful links:
* Discord: https://discord.com/invite/uV6bfG66Fx
* Docs: https://www.netick.net/docs.html
* Site: http://www.netick.net
If you have any questions, need support, or want to report a bug, visit our discord:
https://discord.com/invite/uV6bfG66Fx
## Support
Please consider supporting us on Patreon or here in GitHub so we are able to keep working on and improving Netick!
https://www.patreon.com/user?u=82493081
Enjoy!
Karrar,
Creator of Netick

7
README.md.meta Normal file
View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 2fd3531d471fbbe4ea8a6195898a4a4a
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Resources.meta Normal file
View File

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

View File

@@ -0,0 +1,46 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 2061283162, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name: netickConfig
m_EditorClassIdentifier:
Assemblies:
- Assembly-CSharp.dll
_Prefabs: []
TickRate: 33.333336
MaxPlayers: 16
MaxObjects: 512
MaxSendableDataSize: 50000
AllocatorStateBlockSize: 131072
AllocatorMetaBlockSize: 1048576
ReceiveBufferSize: 32768
SendBufferSize: 16384
Timeout: 10
MaxPredictedTicks: 64
ServerDivisor: 1
ClientDivisor: 1
PhysicsPrediction: 0
PhysicsType: 1
InvokeRenderInHeadless: 1
InvokeUpdate: 1
RenderInvokeOrder: 1
EnableLogging: 1
SimServerLoss: 0
SimClientLoss: 0
EnableLagCompensation: 0
EnableInterestManagement: 0
InterestGroupCount: 2
SimulationCulling: 0
CellSize: 450
WorldSize: {x: 8000, y: 1, z: 8000}
RenderWorldGrid: 0
UseSceneSwitchThread: 1
LagCompensationDebug: 1

View File

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

View File

@@ -0,0 +1,72 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 2061283162, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name: netickConfigDefault
m_EditorClassIdentifier:
Assemblies:
- Assembly-CSharp.dll
_Prefabs:
- Obj: {fileID: 6276855212308729943, guid: 84bdaf9c034444f408cc66234ee3344d, type: 3}
InstanceId: 25174
Name: Bomb
FileName: Assets/Netick/Samples/Bomberman/Network Prefabs/Bomb.prefab
GO: {fileID: 8886278785656527844, guid: 84bdaf9c034444f408cc66234ee3344d, type: 3}
Id: 0
- Obj: {fileID: 8143126971102408644, guid: 98e433893a4b70f41a8ab2145afe3e07, type: 3}
InstanceId: 25178
Name: Bomberman Player
FileName: Assets/Netick/Samples/Bomberman/Network Prefabs/Bomberman Player.prefab
GO: {fileID: 2511112182317059464, guid: 98e433893a4b70f41a8ab2145afe3e07, type: 3}
Id: 1
- Obj: {fileID: 4469672062832013922, guid: 8e254087cbaecc049ac87981c263d46c, type: 3}
InstanceId: 25182
Name: DestroyableBlock
FileName: Assets/Netick/Samples/Bomberman/Network Prefabs/DestroyableBlock.prefab
GO: {fileID: 9137365252298567970, guid: 8e254087cbaecc049ac87981c263d46c, type: 3}
Id: 2
- Obj: {fileID: 9177126579482737267, guid: 09a0cccbd8f361641bd963785a4b016c, type: 3}
InstanceId: 25186
Name: Power Up
FileName: Assets/Netick/Samples/Bomberman/Network Prefabs/Power Up.prefab
GO: {fileID: 3064325587269614628, guid: 09a0cccbd8f361641bd963785a4b016c, type: 3}
Id: 3
- Obj: {fileID: 5100633453439203130, guid: d66d5a97430d3364890108321123b309, type: 3}
InstanceId: 25190
Name: FPS Player
FileName: Assets/Netick/Samples/First Person Shooter/Network Prefabs/FPS Player.prefab
GO: {fileID: 7011933354638177272, guid: d66d5a97430d3364890108321123b309, type: 3}
Id: 4
Replication: 1
TickRate: 33.333336
MaxPlayers: 16
MaxObjects: 512
MaxSendableDataSize: 50000
AllocatorBlockSize: 65536
ReceiveBufferSize: 32768
SendBufferSize: 16384
Timeout: 10
MaxPredicatedTicks: 64
ServerDivisor: 1
ClientDivisor: 1
PredictedClientPhysics: 0
PhysicsType: 1
InvokeRenderInHeadless: 1
RenderInvokeOrder: 1
EnableLogging: 1
SimServerLoss: 0
SimClientLoss: 0
EnableLagCompensation: 0
AoI: 0
CellSize: 450
WorldSize: 8000
UseSceneSwitchThread: 1
LagCompensationDebug: 1

View File

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

8
Samples~/Bomberman.meta Normal file
View File

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

View File

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

View File

@@ -0,0 +1,80 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Mat1
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.779
- _GlossyReflections: 1
- _Metallic: 1
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0, g: 0.37847415, b: 0.745283, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

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

View File

@@ -0,0 +1,83 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Mat2
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 0.2, y: 0.2}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 7f372ff4d556a22488a379662a36ebc2, type: 3}
m_Scale: {x: 0.2, y: 0.2}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.519
- _GlossyReflections: 1
- _Metallic: 0.552
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0.60920256, g: 0.6834936, b: 0.6981132, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

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

View File

@@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Mat3
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0.821
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

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

View File

@@ -0,0 +1,83 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Mat4
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.539
- _GlossyReflections: 1
- _Metallic: 0.365
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 0, g: 0.3098545, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4724a23f459d39a40983d863402e85bc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,80 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Mat5
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossyReflections: 1
- _Metallic: 0.526
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []

View File

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

View File

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

View File

@@ -0,0 +1,167 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8886278785656527844
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8742519062260311098}
- component: {fileID: 6276855212308729943}
- component: {fileID: 2957835487486502232}
- component: {fileID: 5142684991707845191}
- component: {fileID: 503816091899611711}
- component: {fileID: 5318137862036999235}
- component: {fileID: 1230110853952933536}
m_Layer: 6
m_Name: Bomb
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8742519062260311098
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886278785656527844}
serializedVersion: 2
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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6276855212308729943
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886278785656527844}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -1923973434, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
_BroadPhaseFilter: 0
_SpatialPrioritization: 0
_NarrowPhaseFilter: 0
AddToNetworkLoop: 1
GlobalObjectIdHash: 0
SceneId: -1
_PrefabId: 1
PrefabRoot: {fileID: 0}
Children: []
PrefabIndex: -1
Persistent: 0
_predictionMode: 0
--- !u!114 &2957835487486502232
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886278785656527844}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 682374318, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
RenderTransform: {fileID: 0}
TeleportDistance: 50
PositionPrecision: 3
Settings: 3
TransformSpace: 0
_interpolationSource: 0
--- !u!114 &5142684991707845191
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886278785656527844}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 205eff2d73df3c14882a59d0377eebb7, type: 3}
m_Name:
m_EditorClassIdentifier:
ExplosionPrefab: {fileID: 0}
Bomber: {fileID: 0}
ExplosionDelay: 3
--- !u!135 &503816091899611711
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886278785656527844}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &5318137862036999235
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886278785656527844}
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: 2100000, guid: 7a07ebd6a692cf14b8e7ca9ec610398f, type: 2}
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 &1230110853952933536
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886278785656527844}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 84bdaf9c034444f408cc66234ee3344d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,210 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2511112182317059464
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2511112182317059471}
- component: {fileID: 8143126971102408644}
- component: {fileID: 4040699876961413387}
- component: {fileID: 659454795149622509}
- component: {fileID: 4380735189010659699}
m_Layer: 0
m_Name: Bomberman Player
m_TagString: Destroyable
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2511112182317059471
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2511112182317059464}
serializedVersion: 2
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:
- {fileID: 5777255081272970192}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8143126971102408644
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2511112182317059464}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -1923973434, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
_BroadPhaseFilter: 0
_SpatialPrioritization: 0
_NarrowPhaseFilter: 0
AddToNetworkLoop: 1
GlobalObjectIdHash: 0
SceneId: -1
_PrefabId: 2
PrefabRoot: {fileID: 0}
Children: []
PrefabIndex: -1
Persistent: 0
_predictionMode: 0
--- !u!114 &4040699876961413387
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2511112182317059464}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 682374318, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
RenderTransform: {fileID: 5777255081272970192}
TeleportDistance: 50
PositionPrecision: 3
Settings: -1
TransformSpace: 0
_interpolationSource: 0
--- !u!114 &659454795149622509
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2511112182317059464}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0695901b53a12474ca18412bd5b6ac69, type: 3}
m_Name:
m_EditorClassIdentifier:
SpawnedBombs: []
SpawnPos: {x: 0, y: 0, z: 0}
_speed: 6
_speedBoostMultiplayer: 2
<Score>k__BackingField: 0
<Alive>k__BackingField: 1
<MaxBombs>k__BackingField: 1
<SpeedPowerUpTimer>k__BackingField: 0
<BombPowerUpTimer>k__BackingField: 0
--- !u!143 &4380735189010659699
CharacterController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2511112182317059464}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Height: 0.8
m_Radius: 0.3
m_SlopeLimit: 47.8
m_StepOffset: 0
m_SkinWidth: 0.08
m_MinMoveDistance: 0.001
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &6254491268615547166
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5777255081272970192}
- component: {fileID: 7181254853072504542}
- component: {fileID: 6063811400299439378}
m_Layer: 0
m_Name: Char
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5777255081272970192
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6254491268615547166}
serializedVersion: 2
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: 2511112182317059471}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7181254853072504542
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6254491268615547166}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &6063811400299439378
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6254491268615547166}
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: 2100000, guid: dbf18d3dbd43b0b40a1d1ea1d07fc815, type: 2}
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}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 98e433893a4b70f41a8ab2145afe3e07
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,165 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &9137365252298567970
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9137365252298567975}
- component: {fileID: 4469672062832013922}
- component: {fileID: 3199075134650260633}
- component: {fileID: 9137365252298567999}
- component: {fileID: 9137365252298567973}
- component: {fileID: 9137365252298567968}
- component: {fileID: 9137365252298567969}
m_Layer: 0
m_Name: DestroyableBlock
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &9137365252298567975
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9137365252298567970}
serializedVersion: 2
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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4469672062832013922
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9137365252298567970}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -1923973434, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
_BroadPhaseFilter: 0
_SpatialPrioritization: 0
_NarrowPhaseFilter: 0
AddToNetworkLoop: 1
GlobalObjectIdHash: 0
SceneId: -1
_PrefabId: 3
PrefabRoot: {fileID: 0}
Children: []
PrefabIndex: -1
Persistent: 0
_predictionMode: 0
--- !u!114 &3199075134650260633
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9137365252298567970}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 682374318, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
RenderTransform: {fileID: 0}
TeleportDistance: 50
PositionPrecision: 3
Settings: 3
TransformSpace: 0
_interpolationSource: 0
--- !u!114 &9137365252298567999
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9137365252298567970}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a9a2540dae5c3e2479c6e165f43a834d, type: 3}
m_Name:
m_EditorClassIdentifier:
<Visible>k__BackingField: 1
--- !u!65 &9137365252298567973
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9137365252298567970}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &9137365252298567968
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9137365252298567970}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &9137365252298567969
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9137365252298567970}
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: 2100000, guid: a8b107aac826db042a168ebdd5f22fbf, type: 2}
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}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8e254087cbaecc049ac87981c263d46c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,166 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3064325587269614628
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2920415445597455354}
- component: {fileID: 9177126579482737267}
- component: {fileID: 4247151532855953612}
- component: {fileID: 7879554298239723058}
- component: {fileID: 1736452868132088707}
- component: {fileID: 4667690564044089696}
- component: {fileID: 7879554298239723061}
m_Layer: 0
m_Name: Power Up
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2920415445597455354
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3064325587269614628}
serializedVersion: 2
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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &9177126579482737267
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3064325587269614628}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -1923973434, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
_BroadPhaseFilter: 0
_SpatialPrioritization: 0
_NarrowPhaseFilter: 0
AddToNetworkLoop: 1
GlobalObjectIdHash: 0
SceneId: -1
_PrefabId: 4
PrefabRoot: {fileID: 0}
Children: []
PrefabIndex: -1
Persistent: 0
_predictionMode: 0
--- !u!114 &4247151532855953612
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3064325587269614628}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 682374318, guid: da78c2c9df60edc4fb5f65b59fa57c41, type: 3}
m_Name:
m_EditorClassIdentifier:
RenderTransform: {fileID: 0}
TeleportDistance: 50
PositionPrecision: 3
Settings: 3
TransformSpace: 0
_interpolationSource: 0
--- !u!114 &7879554298239723058
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3064325587269614628}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f52db60e2b6aada409a755973bc842b6, type: 3}
m_Name:
m_EditorClassIdentifier:
PowerUpTime: 35
<Type>k__BackingField: 0
--- !u!23 &1736452868132088707
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3064325587269614628}
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: 2100000, guid: 4724a23f459d39a40983d863402e85bc, type: 2}
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 &4667690564044089696
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3064325587269614628}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!135 &7879554298239723061
SphereCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3064325587269614628}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 09a0cccbd8f361641bd963785a4b016c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,65 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &9043785826514568002
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7898509927545904770}
- component: {fileID: 6406825067249873042}
- component: {fileID: 6080399855557709633}
m_Layer: 0
m_Name: Bomberman Sandbox Prefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7898509927545904770
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9043785826514568002}
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: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6406825067249873042
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9043785826514568002}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a132672521c94b04d9660a22f195ad7e, type: 3}
m_Name:
m_EditorClassIdentifier:
AlivePlayers: []
SpawnPositions:
- {x: 11, y: 9, z: 0}
- {x: 11, y: 1, z: 0}
- {x: 1, y: 9, z: 0}
- {x: 1, y: 1, z: 0}
--- !u!114 &6080399855557709633
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9043785826514568002}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d6475ef2cc420914e87d5433265300cf, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d4aa3ed8fdafd074cbc363c4684c3d44
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,432 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7756731906993045135
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7756731906993045134}
- component: {fileID: 7756731906993045132}
- component: {fileID: 7756731906993045133}
m_Layer: 5
m_Name: Name
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7756731906993045134
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731906993045135}
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: 7756731908430032478}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -179.64719, y: -3.35}
m_SizeDelta: {x: 414.8553, y: 23.9777}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7756731906993045132
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731906993045135}
m_CullTransparentMesh: 1
--- !u!114 &7756731906993045133
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731906993045135}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 21
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Server Browser
--- !u!1 &7756731908430032479
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7756731908430032478}
- component: {fileID: 7756731908430032477}
m_Layer: 5
m_Name: UIServerElement
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7756731908430032478
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908430032479}
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:
- {fileID: 7756731908443105545}
- {fileID: 7756731906993045134}
- {fileID: 7756731908664904289}
m_Father: {fileID: 0}
m_RootOrder: -1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 810.21, y: 50.3113}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &7756731908430032477
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908430032479}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 742d47201bd4e0e47b3460de2b0f17c4, type: 3}
m_Name:
m_EditorClassIdentifier:
_nameText: {fileID: 7756731906993045133}
_ipText: {fileID: 7756731908664904288}
_ip:
_Port: 0
--- !u!1 &7756731908443105546
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7756731908443105545}
- component: {fileID: 7756731908443105542}
- component: {fileID: 7756731908443105543}
- component: {fileID: 7756731908443105544}
m_Layer: 5
m_Name: Button (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7756731908443105545
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908443105546}
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:
- {fileID: 7756731908846572219}
m_Father: {fileID: 7756731908430032478}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 313, y: -3.0112}
m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7756731908443105542
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908443105546}
m_CullTransparentMesh: 1
--- !u!114 &7756731908443105543
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908443105546}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7756731908443105544
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908443105546}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 7756731908443105543}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 7756731908430032477}
m_TargetAssemblyTypeName: UIServerElement, Assembly-CSharp
m_MethodName: Connect
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &7756731908664904290
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7756731908664904289}
- component: {fileID: 7756731908664904607}
- component: {fileID: 7756731908664904288}
m_Layer: 5
m_Name: Address
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7756731908664904289
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908664904290}
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: 7756731908430032478}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 135, y: -3.35}
m_SizeDelta: {x: 174.2468, y: 23.9777}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7756731908664904607
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908664904290}
m_CullTransparentMesh: 1
--- !u!114 &7756731908664904288
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908664904290}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 21
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 192.168.66.66
--- !u!1 &7756731908846572220
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7756731908846572219}
- component: {fileID: 7756731908846572217}
- component: {fileID: 7756731908846572218}
m_Layer: 5
m_Name: Text (Legacy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7756731908846572219
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908846572220}
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: 7756731908443105545}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7756731908846572217
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908846572220}
m_CullTransparentMesh: 1
--- !u!114 &7756731908846572218
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7756731908846572220}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Connect

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ca481ab54d856c149b193e63bc0e38d2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b71c088b25b80d84f94a2507d42a689e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 21b4b7891c3358345a538f0ff74d8b18
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -0,0 +1,25 @@
using UnityEngine;
using Netick;
using Netick.Unity;
namespace Netick.Samples.Bomberman
{
public class Block : NetworkBehaviour
{
// Networked properties
[Networked]
public bool Visible { get; set; } = true;
[OnChanged(nameof(Visible))]
private void OnVisibleChanged(OnChangedData onChangedData)
{
// for visual components, don't use "enabled" property when you want to disable/enable it, instead use SetEnabled().
// -- GetComponent<Renderer>().enabled = Visible; #### Not like this.
GetComponent<Renderer>().SetEnabled(Sandbox, Visible); // #### Like this.
GetComponent<BoxCollider>().enabled = Visible;
}
}
}

View File

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

Some files were not shown because too many files have changed in this diff Show More