Add StickGame Assets
This commit is contained in:
8
phr/StickGame/Assets/FishNet/Demos/Authenticator.meta
Normal file
8
phr/StickGame/Assets/FishNet/Demos/Authenticator.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ecbf3577da9f5be4fa280507f592d747
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,782 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!29 &1
|
||||
OcclusionCullingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_OcclusionBakeSettings:
|
||||
smallestOccluder: 5
|
||||
smallestHole: 0.25
|
||||
backfaceThreshold: 100
|
||||
m_SceneGUID: 00000000000000000000000000000000
|
||||
m_OcclusionCullingData: {fileID: 0}
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 9
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
m_FogDensity: 0.01
|
||||
m_LinearFogStart: 0
|
||||
m_LinearFogEnd: 300
|
||||
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
|
||||
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
|
||||
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
|
||||
m_AmbientIntensity: 1
|
||||
m_AmbientMode: 0
|
||||
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
|
||||
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_HaloStrength: 0.5
|
||||
m_FlareStrength: 1
|
||||
m_FlareFadeSpeed: 3
|
||||
m_HaloTexture: {fileID: 0}
|
||||
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_DefaultReflectionMode: 0
|
||||
m_DefaultReflectionResolution: 128
|
||||
m_ReflectionBounces: 1
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 11
|
||||
m_GIWorkflowMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_EnvironmentLightingMode: 0
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 12
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_AtlasSize: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAmbientOcclusion: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 256
|
||||
m_ReflectionCompression: 2
|
||||
m_MixedBakeMode: 2
|
||||
m_BakeBackend: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVRBounces: 2
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_UseShadowmask: 1
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
m_ObjectHideFlags: 0
|
||||
m_BuildSettings:
|
||||
serializedVersion: 2
|
||||
agentTypeID: 0
|
||||
agentRadius: 0.5
|
||||
agentHeight: 2
|
||||
agentSlope: 45
|
||||
agentClimb: 0.4
|
||||
ledgeDropHeight: 0
|
||||
maxJumpAcrossDistance: 0
|
||||
minRegionArea: 2
|
||||
manualCellSize: 0
|
||||
cellSize: 0.16666667
|
||||
manualTileSize: 0
|
||||
tileSize: 256
|
||||
accuratePlacement: 0
|
||||
debug:
|
||||
m_Flags: 0
|
||||
m_NavMeshData: {fileID: 0}
|
||||
--- !u!1 &279669268
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 279669271}
|
||||
- component: {fileID: 279669270}
|
||||
- component: {fileID: 279669269}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &279669269
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 279669268}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_HorizontalAxis: Horizontal
|
||||
m_VerticalAxis: Vertical
|
||||
m_SubmitButton: Submit
|
||||
m_CancelButton: Cancel
|
||||
m_InputActionsPerSecond: 10
|
||||
m_RepeatDelay: 0.5
|
||||
m_ForceModuleActive: 0
|
||||
--- !u!114 &279669270
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 279669268}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_FirstSelected: {fileID: 0}
|
||||
m_sendNavigationEvents: 1
|
||||
m_DragThreshold: 10
|
||||
--- !u!4 &279669271
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 279669268}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1759771918
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7443408886491481971}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 226e4eaf2fa685f48bdc3dfaa87c1453, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_allowHostAuthentication: 0
|
||||
_password: HelloWorld
|
||||
--- !u!114 &1424052072944914341
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2480283715082037068}
|
||||
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: 0.25490198, g: 0.25490198, b: 0.25490198, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 2b3dca501a9d8c8479dc71dd068aa8b8, type: 3}
|
||||
m_Type: 0
|
||||
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!1 &2480283715082037068
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9139860296647313502}
|
||||
- component: {fileID: 6745855427589034838}
|
||||
- component: {fileID: 1424052072944914341}
|
||||
m_Layer: 5
|
||||
m_Name: Indicator
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &3965864433892086703
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4808982257735318098}
|
||||
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: 0.25490198, g: 0.25490198, b: 0.25490198, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 2b3dca501a9d8c8479dc71dd068aa8b8, type: 3}
|
||||
m_Type: 0
|
||||
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 &4393252309946693682
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309946693695}
|
||||
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_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 2d50394614f8feb4eb0567fb7618d84d, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &4393252309946693683
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309946693695}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!224 &4393252309946693692
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309946693695}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 9139860296647313502}
|
||||
m_Father: {fileID: 4393252310487700761}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 16, y: -96}
|
||||
m_SizeDelta: {x: 256, y: 64}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &4393252309946693693
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309946693695}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
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: 4393252309946693682}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 4393252310487700741}
|
||||
m_MethodName: OnClick_Client
|
||||
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 &4393252309946693695
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4393252309946693692}
|
||||
- component: {fileID: 4393252309946693683}
|
||||
- component: {fileID: 4393252309946693682}
|
||||
- component: {fileID: 4393252309946693693}
|
||||
m_Layer: 5
|
||||
m_Name: Client
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &4393252309963656626
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309963656639}
|
||||
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_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 21300000, guid: 1b187e63031bf7849b249c8212440c3b, type: 3}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!222 &4393252309963656627
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309963656639}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!224 &4393252309963656636
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309963656639}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 7233259198976730044}
|
||||
m_Father: {fileID: 4393252310487700761}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 0, y: 1}
|
||||
m_AnchoredPosition: {x: 16, y: -16}
|
||||
m_SizeDelta: {x: 256, y: 64}
|
||||
m_Pivot: {x: 0, y: 1}
|
||||
--- !u!114 &4393252309963656637
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252309963656639}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
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: 4393252309963656626}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 4393252310487700741}
|
||||
m_MethodName: OnClick_Server
|
||||
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 &4393252309963656639
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4393252309963656636}
|
||||
- component: {fileID: 4393252309963656627}
|
||||
- component: {fileID: 4393252309963656626}
|
||||
- component: {fileID: 4393252309963656637}
|
||||
m_Layer: 5
|
||||
m_Name: Server
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!1 &4393252310487700740
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4393252310487700761}
|
||||
- component: {fileID: 4393252310487700741}
|
||||
- component: {fileID: 4393252310487700760}
|
||||
- component: {fileID: 4393252310487700763}
|
||||
- component: {fileID: 4393252310487700762}
|
||||
m_Layer: 5
|
||||
m_Name: NetworkHudCanvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!114 &4393252310487700741
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252310487700740}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6d3606bfdac5a4743890fc1a5ecd8f24, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_autoStartType: 1
|
||||
_stoppedColor: {r: 0.25490198, g: 0.25490198, b: 0.25490198, a: 1}
|
||||
_changingColor: {r: 0.78431374, g: 0.6862745, b: 0, a: 1}
|
||||
_startedColor: {r: 0, g: 0.5882353, b: 0.64705884, a: 1}
|
||||
_serverIndicator: {fileID: 3965864433892086703}
|
||||
_clientIndicator: {fileID: 1424052072944914341}
|
||||
--- !u!223 &4393252310487700760
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252310487700740}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!224 &4393252310487700761
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252310487700740}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 4393252309963656636}
|
||||
- {fileID: 4393252309946693692}
|
||||
m_Father: {fileID: 7443408886491481969}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!114 &4393252310487700762
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252310487700740}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &4393252310487700763
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4393252310487700740}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0.5
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
--- !u!1 &4808982257735318098
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7233259198976730044}
|
||||
- component: {fileID: 5104387648618217429}
|
||||
- component: {fileID: 3965864433892086703}
|
||||
m_Layer: 5
|
||||
m_Name: Indicator
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!222 &5104387648618217429
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4808982257735318098}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!222 &6745855427589034838
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2480283715082037068}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!224 &7233259198976730044
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4808982257735318098}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -1}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4393252309963656636}
|
||||
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!4 &7443408886491481969
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7443408886491481971}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 4393252310487700761}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &7443408886491481970
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7443408886491481971}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d2c95dfde7d73b54dbbdc23155d35d36, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_logging: {fileID: 0}
|
||||
_spawnablePrefabs: {fileID: 11400000, guid: ab6a9000f5ff83f45b6761c2a3be018d, type: 2}
|
||||
_refreshDefaultPrefabs: 0
|
||||
_runInBackground: 1
|
||||
_dontDestroyOnLoad: 1
|
||||
_objectPool: {fileID: 0}
|
||||
_persistence: 0
|
||||
--- !u!1 &7443408886491481971
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7443408886491481969}
|
||||
- component: {fileID: 7443408886491481970}
|
||||
- component: {fileID: 1759771918}
|
||||
m_Layer: 0
|
||||
m_Name: NetworkManager
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &9139860296647313502
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2480283715082037068}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: -1}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 4393252309946693692}
|
||||
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}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0bc02b628363de5499d5e7c00bd63b1b
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 29d7fd53a109938428ece2660c6bbf25
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,15 @@
|
||||
%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: 11500000, guid: 4489d77032a81ef42b0067acf2737d4d, type: 3}
|
||||
m_Name: Authenticator_Prefabs
|
||||
m_EditorClassIdentifier:
|
||||
_prefabs: []
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab6a9000f5ff83f45b6761c2a3be018d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0cb111b6bede3a1478c9b179a609d822
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
using FishNet.Broadcast;
|
||||
|
||||
namespace FishNet.Example.Authenticating
|
||||
{
|
||||
public struct HostPasswordBroadcast : IBroadcast
|
||||
{
|
||||
public string Password;
|
||||
}
|
||||
|
||||
public struct PasswordBroadcast : IBroadcast
|
||||
{
|
||||
public string Password;
|
||||
}
|
||||
|
||||
public struct ResponseBroadcast : IBroadcast
|
||||
{
|
||||
public bool Passed;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d26bb0c99070e9b49bc8632dc0b68214
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,152 @@
|
||||
using FishNet.Connection;
|
||||
using FishNet.Example.Authenticating;
|
||||
using FishNet.Managing;
|
||||
using FishNet.Transporting;
|
||||
using System;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Authenticating
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// This authenticator is an example of how to let host bypass the authentication process.
|
||||
/// When checking to authenticate on the client side call AuthenticateAsHost, and if returned true skip normal authentication.
|
||||
/// </summary>
|
||||
public abstract class HostAuthenticator : Authenticator
|
||||
{
|
||||
#region Serialized.
|
||||
/// <summary>
|
||||
/// True to enable use of AuthenticateAsHost.
|
||||
/// </summary>
|
||||
[Tooltip("True to enable use of AuthenticateAsHost.")]
|
||||
[SerializeField]
|
||||
private bool _allowHostAuthentication;
|
||||
/// <summary>
|
||||
/// Sets if to allow host authentication.
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
public void SetAllowHostAuthentication(bool value) => _allowHostAuthentication = value;
|
||||
/// <summary>
|
||||
/// Returns if AllowHostAuthentication is enabled.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool GetAllowHostAuthentication() => _allowHostAuthentication;
|
||||
#endregion
|
||||
|
||||
#region Private.
|
||||
/// <summary>
|
||||
/// A random hash which only exist if the server is started.
|
||||
/// </summary>
|
||||
private static string _hostHash = string.Empty;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Initializes this script for use.
|
||||
/// </summary>
|
||||
/// <param name="networkManager"></param>
|
||||
public override void InitializeOnce(NetworkManager networkManager)
|
||||
{
|
||||
base.InitializeOnce(networkManager);
|
||||
//Listen for connection state of local server to set hash.
|
||||
base.NetworkManager.ServerManager.OnServerConnectionState += ServerManager_OnServerConnectionState;
|
||||
//Listen for broadcast from client. Be sure to set requireAuthentication to false.
|
||||
base.NetworkManager.ServerManager.RegisterBroadcast<HostPasswordBroadcast>(OnHostPasswordBroadcast, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called after the local server connection state changes.
|
||||
/// </summary>
|
||||
private void ServerManager_OnServerConnectionState(ServerConnectionStateArgs obj)
|
||||
{
|
||||
int length = (obj.ConnectionState == LocalConnectionState.Started) ? 25 : 0;
|
||||
SetHostHash(length);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Received on server when a client sends the password broadcast message.
|
||||
/// </summary>
|
||||
/// <param name="conn">Connection sending broadcast.</param>
|
||||
/// <param name="hpb"></param>
|
||||
private void OnHostPasswordBroadcast(NetworkConnection conn, HostPasswordBroadcast hpb)
|
||||
{
|
||||
//Not accepting host authentications. This could be an attack.
|
||||
if (!_allowHostAuthentication)
|
||||
{
|
||||
conn.Disconnect(true);
|
||||
return;
|
||||
}
|
||||
/* If client is already authenticated this could be an attack. Connections
|
||||
* are removed when a client disconnects so there is no reason they should
|
||||
* already be considered authenticated. */
|
||||
if (conn.Authenticated)
|
||||
{
|
||||
conn.Disconnect(true);
|
||||
return;
|
||||
}
|
||||
|
||||
bool correctPassword = (hpb.Password == _hostHash);
|
||||
OnHostAuthenticationResult(conn, correctPassword);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called after handling a host authentication result.
|
||||
/// </summary>
|
||||
/// <param name="conn">Connection authenticating.</param>
|
||||
/// <param name="authenticated">True if authentication passed.</param>
|
||||
protected abstract void OnHostAuthenticationResult(NetworkConnection conn, bool authenticated);
|
||||
|
||||
/// <summary>
|
||||
/// Sets a host hash of length.
|
||||
/// </summary>
|
||||
/// https://stackoverflow.com/questions/32932679/using-rngcryptoserviceprovider-to-generate-random-string
|
||||
private void SetHostHash(int length)
|
||||
{
|
||||
if (length <= 0)
|
||||
{
|
||||
_hostHash = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
const string charPool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()";
|
||||
StringBuilder result = new StringBuilder();
|
||||
using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
|
||||
{
|
||||
byte[] uintBuffer = new byte[sizeof(uint)];
|
||||
while (length-- > 0)
|
||||
{
|
||||
rng.GetBytes(uintBuffer);
|
||||
uint num = BitConverter.ToUInt32(uintBuffer, 0);
|
||||
result.Append(charPool[(int)(num % (uint)charPool.Length)]);
|
||||
}
|
||||
}
|
||||
|
||||
_hostHash = result.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns true if authentication was sent as host.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected bool AuthenticateAsHost()
|
||||
{
|
||||
if (!_allowHostAuthentication)
|
||||
return false;
|
||||
if (_hostHash == string.Empty)
|
||||
return false;
|
||||
|
||||
HostPasswordBroadcast hpb = new HostPasswordBroadcast()
|
||||
{
|
||||
Password = _hostHash,
|
||||
};
|
||||
|
||||
base.NetworkManager.ClientManager.Broadcast(hpb);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c7497d751bb68f444b4343e3edc28e39
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,132 @@
|
||||
using FishNet.Authenticating;
|
||||
using FishNet.Connection;
|
||||
using FishNet.Managing;
|
||||
using FishNet.Managing.Logging;
|
||||
using FishNet.Transporting;
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Example.Authenticating
|
||||
{
|
||||
/// <summary>
|
||||
/// This is an example of a password authenticator.
|
||||
/// Never send passwords without encryption.
|
||||
/// </summary>
|
||||
public class PasswordAuthenticator : HostAuthenticator
|
||||
{
|
||||
#region Public.
|
||||
/// <summary>
|
||||
/// Called when authenticator has concluded a result for a connection. Boolean is true if authentication passed, false if failed.
|
||||
/// Server listens for this event automatically.
|
||||
/// </summary>
|
||||
public override event Action<NetworkConnection, bool> OnAuthenticationResult;
|
||||
#endregion
|
||||
|
||||
#region Serialized.
|
||||
/// <summary>
|
||||
/// Password to authenticate.
|
||||
/// </summary>
|
||||
[Tooltip("Password to authenticate.")]
|
||||
[SerializeField]
|
||||
private string _password = "HelloWorld";
|
||||
#endregion
|
||||
|
||||
public override void InitializeOnce(NetworkManager networkManager)
|
||||
{
|
||||
base.InitializeOnce(networkManager);
|
||||
|
||||
//Listen for connection state change as client.
|
||||
base.NetworkManager.ClientManager.OnClientConnectionState += ClientManager_OnClientConnectionState;
|
||||
//Listen for broadcast from client. Be sure to set requireAuthentication to false.
|
||||
base.NetworkManager.ServerManager.RegisterBroadcast<PasswordBroadcast>(OnPasswordBroadcast, false);
|
||||
//Listen to response from server.
|
||||
base.NetworkManager.ClientManager.RegisterBroadcast<ResponseBroadcast>(OnResponseBroadcast);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when a connection state changes for the local client.
|
||||
/// </summary>
|
||||
private void ClientManager_OnClientConnectionState(ClientConnectionStateArgs args)
|
||||
{
|
||||
/* If anything but the started state then exit early.
|
||||
* Only try to authenticate on started state. The server
|
||||
* doesn't have to send an authentication request before client
|
||||
* can authenticate, that is entirely optional and up to you. In this
|
||||
* example the client tries to authenticate soon as they connect. */
|
||||
if (args.ConnectionState != LocalConnectionState.Started)
|
||||
return;
|
||||
//Authentication was sent as host, no need to authenticate normally.
|
||||
if (AuthenticateAsHost())
|
||||
return;
|
||||
|
||||
PasswordBroadcast pb = new PasswordBroadcast()
|
||||
{
|
||||
Password = _password
|
||||
};
|
||||
|
||||
base.NetworkManager.ClientManager.Broadcast(pb);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Received on server when a client sends the password broadcast message.
|
||||
/// </summary>
|
||||
/// <param name="conn">Connection sending broadcast.</param>
|
||||
/// <param name="pb"></param>
|
||||
private void OnPasswordBroadcast(NetworkConnection conn, PasswordBroadcast pb)
|
||||
{
|
||||
/* If client is already authenticated this could be an attack. Connections
|
||||
* are removed when a client disconnects so there is no reason they should
|
||||
* already be considered authenticated. */
|
||||
if (conn.Authenticated)
|
||||
{
|
||||
conn.Disconnect(true);
|
||||
return;
|
||||
}
|
||||
|
||||
bool correctPassword = (pb.Password == _password);
|
||||
SendAuthenticationResponse(conn, correctPassword);
|
||||
/* Invoke result. This is handled internally to complete the connection or kick client.
|
||||
* It's important to call this after sending the broadcast so that the broadcast
|
||||
* makes it out to the client before the kick. */
|
||||
OnAuthenticationResult?.Invoke(conn, correctPassword);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Received on client after server sends an authentication response.
|
||||
/// </summary>
|
||||
/// <param name="rb"></param>
|
||||
private void OnResponseBroadcast(ResponseBroadcast rb)
|
||||
{
|
||||
string result = (rb.Passed) ? "Authentication complete." : "Authenitcation failed.";
|
||||
NetworkManager.Log(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sends an authentication result to a connection.
|
||||
/// </summary>
|
||||
private void SendAuthenticationResponse(NetworkConnection conn, bool authenticated)
|
||||
{
|
||||
/* Tell client if they authenticated or not. This is
|
||||
* entirely optional but does demonstrate that you can send
|
||||
* broadcasts to client on pass or fail. */
|
||||
ResponseBroadcast rb = new ResponseBroadcast()
|
||||
{
|
||||
Passed = authenticated
|
||||
};
|
||||
base.NetworkManager.ServerManager.Broadcast(conn, rb, false);
|
||||
}
|
||||
/// <summary>
|
||||
/// Called after handling a host authentication result.
|
||||
/// </summary>
|
||||
/// <param name="conn">Connection authenticating.</param>
|
||||
/// <param name="authenticated">True if authentication passed.</param>
|
||||
protected override void OnHostAuthenticationResult(NetworkConnection conn, bool authenticated)
|
||||
{
|
||||
SendAuthenticationResponse(conn, authenticated);
|
||||
OnAuthenticationResult?.Invoke(conn, authenticated);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 226e4eaf2fa685f48bdc3dfaa87c1453
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
phr/StickGame/Assets/FishNet/Demos/ColliderRollback.meta
Normal file
8
phr/StickGame/Assets/FishNet/Demos/ColliderRollback.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b4a241a573ddd2841a4f3eb890a36bf2
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 055912d614133a949a9ea99034287d3f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0330762d2b3c8d641bfe11ad89b7e196
|
||||
AudioImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 6
|
||||
defaultSettings:
|
||||
loadType: 0
|
||||
sampleRateSetting: 0
|
||||
sampleRateOverride: 44100
|
||||
compressionFormat: 1
|
||||
quality: 1
|
||||
conversionMode: 0
|
||||
platformSettingOverrides: {}
|
||||
forceToMono: 0
|
||||
normalize: 1
|
||||
preloadAudioData: 1
|
||||
loadInBackground: 0
|
||||
ambisonic: 0
|
||||
3D: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,10 @@
|
||||
THIS DEMO REQUIRES FISH-NETWORKING PRO
|
||||
|
||||
- Start two editors or builds.
|
||||
- Press play on each.
|
||||
- Run one as server, and the other as client.
|
||||
|
||||
Red shows where the object was rolled back to on the server.
|
||||
Green shows where the object actually was on server.
|
||||
|
||||
Rollback indicators in demo will not be correct when firing as clientHost.
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 683b83b178f491a479b732df31da7ade
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2105bcd81068f6244a97aeccbe8818d8
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Ground
|
||||
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
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.30265415, g: 0.31132078, b: 0.08664116, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d329b71ccd856144ab8753e70f69e4e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bdb28f0aecd0e4f43ba84d12dc7a9e0f
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,29 @@
|
||||
%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: Circle Additive
|
||||
m_Shader: {fileID: 10720, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords:
|
||||
m_LightmapFlags: 5
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap: {}
|
||||
disabledShaderPasses: []
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 2800000, guid: 155f67fd8750f8e4e83c8efb1731f3a0, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
- _InvFade: 1
|
||||
m_Colors:
|
||||
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4bf10d94145fd6c4187c18de0af92e43
|
||||
timeCreated: 1448288937
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5ad1202d40533db4fba20e21a57fec29
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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: ClientPosition
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
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: 10
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 3
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 0, g: 1, b: 0.034508944, a: 0.49019608}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 997fc4a5ccc62814697fc91eb139e535
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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: ServerPosition
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _ALPHAPREMULTIPLY_ON
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: 3000
|
||||
stringTagMap:
|
||||
RenderType: Transparent
|
||||
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: 10
|
||||
- _GlossMapScale: 1
|
||||
- _Glossiness: 0.5
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 3
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 0
|
||||
m_Colors:
|
||||
- _Color: {r: 1, g: 0.05869128, b: 0, a: 0.49019608}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14cdcc3d5d8692d469297ede7ced7ab8
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Target
|
||||
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
|
||||
- _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}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4c62c607906e6e1499102239be9499be
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Wall
|
||||
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
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.4339623, g: 0.4339623, b: 0.4339623, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 14d23cd2d8240244baa6026ca98df0bf
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2fb6eaa3dd222634591fa7ebc5245eda
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 499043ab5c8e7ce4d9f83dddbe4c9bfa
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,949 @@
|
||||
# Alias OBJ Model File
|
||||
# Exported from SketchUp, (c) 2000-2012 Trimble Navigation Limited
|
||||
# File units = meters
|
||||
|
||||
mtllib pistol.mtl
|
||||
|
||||
g Mesh1 Group2 Group1 Model
|
||||
|
||||
usemtl Gray4
|
||||
v 0.0045 0.018 0.0225
|
||||
vt 0 22.0472
|
||||
vn 1 0 -0
|
||||
v 0.0045 0.0102 0.0225
|
||||
vt 0 16.9291
|
||||
v 0.0045 0.0102 -0.0189
|
||||
vt 27.1654 16.9291
|
||||
v 0.0045 0.018 -0.0189
|
||||
vt 27.1654 22.0472
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
|
||||
v -0.0045 0.018 0.0225
|
||||
vn 0 0 1
|
||||
v -0.0045 0.0102 0.0225
|
||||
v -0.0039 0.0102 0.0225
|
||||
vt 0.393701 16.9291
|
||||
v -0.0039 0.0174 0.0225
|
||||
vt 0.393701 21.6535
|
||||
v 0.0039 0.0174 0.0225
|
||||
vt 5.51181 21.6535
|
||||
v 0.0039 0.0102 0.0225
|
||||
vt 5.51181 16.9291
|
||||
vt 5.90551 16.9291
|
||||
vt 5.90551 22.0472
|
||||
f 5/1/2 6/2/2 7/5/2 8/6/2 9/7/2 10/8/2 2/9/2 1/10/2
|
||||
|
||||
v -0.0045 0.018 -0.0075
|
||||
vt -19.685 22.0472
|
||||
vn -1 0 -0
|
||||
v -0.0045 0.018 -0.0189
|
||||
vt -27.1654 22.0472
|
||||
v -0.0045 0.0102 -0.0189
|
||||
vt -27.1654 16.9291
|
||||
v -0.0045 0.018 0.0003
|
||||
vt -14.5669 22.0472
|
||||
v -0.0045 0.015 0.0003
|
||||
vt -14.5669 20.0787
|
||||
v -0.0045 0.015 -0.0075
|
||||
vt -19.685 20.0787
|
||||
f 11/11/3 12/12/3 13/13/3 6/2/3 5/1/3 14/14/3 15/15/3 16/16/3
|
||||
|
||||
vt 0 27.1654
|
||||
vn 0 1 -0
|
||||
vt 0 19.685
|
||||
v 0.0015 0.018 -0.0075
|
||||
vt 3.93701 19.685
|
||||
v 0.0015 0.018 0.0003
|
||||
vt 3.93701 14.5669
|
||||
vt 0 14.5669
|
||||
vt 0 0
|
||||
vt 5.90551 0
|
||||
vt 5.90551 27.1654
|
||||
f 12/17/4 11/18/4 17/19/4 18/20/4 14/21/4 5/22/4 1/23/4 4/24/4
|
||||
|
||||
v 0.0015 0.0174 -0.0075
|
||||
vt 3.93701 21.6535
|
||||
vt 3.93701 22.0472
|
||||
vt 0 20.0787
|
||||
v -0.0039 0.015 -0.0075
|
||||
vt 0.393701 20.0787
|
||||
v -0.0039 0.0174 -0.0075
|
||||
f 19/25/2 17/26/2 11/1/2 16/27/2 20/28/2 21/6/2
|
||||
|
||||
vt -19.685 21.6535
|
||||
v 0.0015 0.0174 0.0003
|
||||
vt -14.5669 21.6535
|
||||
f 18/14/3 17/11/3 19/29/3 22/30/3
|
||||
|
||||
v 0.0039 0.0174 -0.0189
|
||||
vt -5.51181 27.1654
|
||||
vn 0 -1 -0
|
||||
v 0.0039 0.0174 0.0219
|
||||
vt -5.51181 0.393701
|
||||
v -0.0039 0.0174 0.0219
|
||||
vt -0.393701 0.393701
|
||||
v -0.0039 0.0174 0.0003
|
||||
vt -0.393701 14.5669
|
||||
vt -3.93701 14.5669
|
||||
vt -3.93701 19.685
|
||||
vt -0.393701 19.685
|
||||
v -0.0039 0.0174 -0.0189
|
||||
vt -0.393701 27.1654
|
||||
f 23/31/5 24/32/5 25/33/5 26/34/5 22/35/5 19/36/5 21/37/5 27/38/5
|
||||
|
||||
vt -0.393701 21.6535
|
||||
vn -1 -8.44909e-032 -5.30817e-016
|
||||
vt -27.1654 21.6535
|
||||
v 0.0039 0.0102 -0.0189
|
||||
v 0.0039 0.0102 0.0219
|
||||
vt -0.393701 16.9291
|
||||
f 24/39/6 23/40/6 28/13/6 29/41/6
|
||||
|
||||
vt -5.90551 16.9291
|
||||
vn 0 0 -1
|
||||
vt -5.51181 16.9291
|
||||
vt -5.51181 21.6535
|
||||
v -0.0039 0.0102 -0.0189
|
||||
vt -5.90551 22.0472
|
||||
f 3/42/7 28/43/7 23/44/7 27/39/7 30/41/7 13/2/7 12/1/7 4/45/7
|
||||
|
||||
vt -5.90551 27.1654
|
||||
vt -5.90551 0
|
||||
vt -5.51181 0
|
||||
f 29/32/5 28/31/5 3/46/5 2/47/5 10/48/5
|
||||
|
||||
vt 0 21.6535
|
||||
f 10/2/3 9/49/3 24/39/3 29/41/3
|
||||
|
||||
vt -0.393701 0
|
||||
f 9/48/5 8/50/5 25/33/5 24/32/5
|
||||
|
||||
v -0.0039 0.0102 0.0219
|
||||
f 8/49/1 7/2/1 31/5/1 25/6/1
|
||||
|
||||
f 30/38/5 31/33/5 7/50/5 6/22/5 13/17/5
|
||||
|
||||
vt 14.5669 21.6535
|
||||
vn 1 -9.10486e-016 -4.47514e-016
|
||||
vt 27.1654 21.6535
|
||||
vt 19.685 21.6535
|
||||
vt 19.685 20.0787
|
||||
v -0.0039 0.015 0.0003
|
||||
vt 14.5669 20.0787
|
||||
f 26/51/8 25/6/8 31/5/8 30/3/8 27/52/8 21/53/8 20/54/8 32/55/8
|
||||
|
||||
vt 0.393701 14.5669
|
||||
vt 0.393701 19.685
|
||||
f 16/18/4 15/21/4 32/56/4 20/57/4
|
||||
|
||||
vt -3.93701 21.6535
|
||||
vt -0.393701 20.0787
|
||||
vt -3.93701 22.0472
|
||||
f 22/58/7 26/39/7 32/59/7 15/27/7 14/1/7 18/60/7
|
||||
|
||||
g Mesh2 Group3 Group1 Model
|
||||
|
||||
usemtl Gray6
|
||||
v -0.0039 -0.0156 -0.0225
|
||||
vt -0.393701 29.5276
|
||||
v 0.0039 -0.0156 -0.0225
|
||||
vt -5.51181 29.5276
|
||||
v 0.0039 -0.0156 -0.0105
|
||||
v -0.0039 -0.0156 -0.0105
|
||||
f 33/61/5 34/62/5 35/44/5 36/39/5
|
||||
|
||||
v 0.0045 -0.0156 -0.0231
|
||||
vt 5.90551 29.9213
|
||||
vt 0.393701 29.5276
|
||||
vt 5.51181 29.5276
|
||||
f 37/63/4 33/64/4 34/65/4
|
||||
|
||||
v -0.0045 -0.0156 -0.0231
|
||||
vt 0 29.9213
|
||||
f 38/66/4 33/64/4 37/63/4
|
||||
|
||||
v -0.0045 -0.0156 -0.0099
|
||||
vt 1.42109e-014 21.2598
|
||||
f 33/64/4 38/66/4 39/67/4
|
||||
|
||||
vt -21.2598 -1.02483e-058
|
||||
vn -1 -2.08756e-045 1.64071e-015
|
||||
vt -29.9213 -1.02483e-058
|
||||
v -0.0045 -0.018 -0.0231
|
||||
vt -29.9213 -1.5748
|
||||
v -0.0045 -0.018 -0.0099
|
||||
vt -21.2598 -1.5748
|
||||
f 39/68/9 38/69/9 40/70/9 41/71/9
|
||||
|
||||
v 0.0045 -0.018 -0.0231
|
||||
vt -5.90551 -1.5748
|
||||
vt 0 -1.5748
|
||||
f 38/22/7 37/47/7 42/72/7 40/73/7
|
||||
|
||||
vt 29.9213 1.23281e-044
|
||||
vn 1 -2.08756e-045 -1.64071e-015
|
||||
v 0.0045 -0.0156 -0.0099
|
||||
vt 21.2598 1.23281e-044
|
||||
v 0.0045 -0.018 -0.0099
|
||||
vt 21.2598 -1.5748
|
||||
vt 29.9213 -1.5748
|
||||
f 37/74/10 43/75/10 44/76/10 42/77/10
|
||||
|
||||
vt 5.90551 21.2598
|
||||
f 35/7/4 43/78/4 37/63/4
|
||||
|
||||
f 36/6/4 43/78/4 35/7/4
|
||||
|
||||
f 36/6/4 39/67/4 43/78/4
|
||||
|
||||
f 39/67/4 36/6/4 33/64/4
|
||||
|
||||
v -0.0039 0.0072 0.0219
|
||||
vt -0.393701 14.9606
|
||||
vn -1 -6.29366e-016 1.52472e-016
|
||||
v -0.0039 0.0174 0.0219
|
||||
v -0.0039 0.0174 -0.0195
|
||||
vt -27.5591 21.6535
|
||||
v -0.0039 0.0072 -0.0195
|
||||
vt -27.5591 14.9606
|
||||
v -0.0039 0.0072 -0.0165
|
||||
vt -25.5906 14.9606
|
||||
vt -29.5276 -2.47782e-016
|
||||
vt -21.6535 -2.47782e-016
|
||||
v -0.0039 0.0072 -0.0045
|
||||
vt -17.7165 14.9606
|
||||
f 45/79/11 46/39/11 47/80/11 48/81/11 49/82/11 33/83/11 36/84/11 50/85/11
|
||||
|
||||
vt 0.393701 14.9606
|
||||
v -0.00289778 0.0130235 0.0219
|
||||
vt 1.05133 18.7819
|
||||
f 45/86/2 51/87/2 46/6/2
|
||||
|
||||
v -0.00259808 0.0123 0.0219
|
||||
vt 1.24798 18.3071
|
||||
f 51/87/2 45/86/2 52/88/2
|
||||
|
||||
v -0.00212132 0.0116787 0.0219
|
||||
vt 1.56081 17.8994
|
||||
f 52/88/2 45/86/2 53/89/2
|
||||
|
||||
v -0.0015 0.0112019 0.0219
|
||||
vt 1.9685 17.5866
|
||||
f 53/89/2 45/86/2 54/90/2
|
||||
|
||||
v -0.000776457 0.0109022 0.0219
|
||||
vt 2.44327 17.3899
|
||||
f 54/90/2 45/86/2 55/91/2
|
||||
|
||||
v -9.86988e-018 0.0108 0.0219
|
||||
vt 2.95276 17.3228
|
||||
f 55/91/2 45/86/2 56/92/2
|
||||
|
||||
v 0.000776457 0.0109022 0.0219
|
||||
vt 3.46224 17.3899
|
||||
f 45/86/2 57/93/2 56/92/2
|
||||
|
||||
v 0.0015 0.0112019 0.0219
|
||||
vt 3.93701 17.5866
|
||||
f 45/86/2 58/94/2 57/93/2
|
||||
|
||||
v 0.0039 0.0072 0.0219
|
||||
vt 5.51181 14.9606
|
||||
f 59/95/2 58/94/2 45/86/2
|
||||
|
||||
v 0.00212132 0.0116787 0.0219
|
||||
vt 4.3447 17.8994
|
||||
f 58/94/2 59/95/2 60/96/2
|
||||
|
||||
v 0.00259808 0.0123 0.0219
|
||||
vt 4.65753 18.3071
|
||||
f 60/96/2 59/95/2 61/97/2
|
||||
|
||||
v 0.00289778 0.0130235 0.0219
|
||||
vt 4.85418 18.7819
|
||||
f 61/97/2 59/95/2 62/98/2
|
||||
|
||||
v 0.0039 0.0174 0.0219
|
||||
f 62/98/2 59/95/2 63/7/2
|
||||
|
||||
v 0.0039 0.0174 -0.0195
|
||||
vt 27.5591 21.6535
|
||||
vn 1 -1.5843e-016 1.83988e-016
|
||||
v 0.0039 0.0072 -0.0045
|
||||
vt 17.7165 14.9606
|
||||
vt 21.6535 8.73238e-016
|
||||
vt 29.5276 8.73238e-016
|
||||
v 0.0039 0.0072 -0.0165
|
||||
vt 25.5906 14.9606
|
||||
v 0.0039 0.0072 -0.0195
|
||||
vt 27.5591 14.9606
|
||||
f 64/99/12 63/6/12 59/86/12 65/100/12 35/101/12 34/102/12 66/103/12 67/104/12
|
||||
|
||||
vt 0.393701 27.5591
|
||||
vt 0.393701 0.393701
|
||||
vt 5.51181 0.393701
|
||||
vt 5.51181 27.5591
|
||||
f 47/105/4 46/106/4 63/107/4 64/108/4
|
||||
|
||||
v -9.86988e-018 0.0168 0.0219
|
||||
vt 2.95276 21.2598
|
||||
f 46/6/2 68/109/2 63/7/2
|
||||
|
||||
v -0.000776457 0.0166978 0.0219
|
||||
vt 2.44327 21.1928
|
||||
f 46/6/2 69/110/2 68/109/2
|
||||
|
||||
v -0.0015 0.0163981 0.0219
|
||||
vt 1.9685 20.9961
|
||||
f 46/6/2 70/111/2 69/110/2
|
||||
|
||||
v -0.00212132 0.0159213 0.0219
|
||||
vt 1.56081 20.6833
|
||||
f 46/6/2 71/112/2 70/111/2
|
||||
|
||||
v -0.00259808 0.0153 0.0219
|
||||
vt 1.24798 20.2756
|
||||
f 46/6/2 72/113/2 71/112/2
|
||||
|
||||
v -0.00289778 0.0145765 0.0219
|
||||
vt 1.05133 19.8008
|
||||
f 46/6/2 73/114/2 72/113/2
|
||||
|
||||
v -0.003 0.0138 0.0219
|
||||
vt 0.984252 19.2913
|
||||
f 46/6/2 74/115/2 73/114/2
|
||||
|
||||
f 46/6/2 51/87/2 74/115/2
|
||||
|
||||
usemtl Gray4
|
||||
v -0.003 0.0138 0.0231
|
||||
vt 0.393701 18.9978
|
||||
vt -0.393701 18.9978
|
||||
vt -0.393701 18.4839
|
||||
vn -0.965926 -0.258819 -0
|
||||
v -0.00289778 0.0130235 0.0231
|
||||
vt 0.393701 18.4839
|
||||
f 75/116/3 74/117/3 51/118/13 76/119/13
|
||||
|
||||
v -0.00289778 0.0145765 0.0231
|
||||
vt 0.393701 19.7687
|
||||
vn -0.965926 0.258819 -0
|
||||
vt -0.393701 19.7687
|
||||
vt -0.393701 19.2548
|
||||
vt 0.393701 19.2548
|
||||
f 77/120/14 73/121/14 74/122/3 75/123/3
|
||||
|
||||
v -0.00259808 0.0153 0.0231
|
||||
vt 0.393701 19.2098
|
||||
vn -0.866025 0.5 -0
|
||||
vt -0.393701 19.2098
|
||||
vt -0.393701 18.6959
|
||||
vt 0.393701 18.6959
|
||||
f 78/124/15 72/125/15 73/126/14 77/127/14
|
||||
|
||||
v -0.00212132 0.0159213 0.0231
|
||||
vt 0.393701 17.3593
|
||||
vn -0.707107 0.707107 -0
|
||||
vt -0.393701 17.3593
|
||||
vt -0.393701 16.8454
|
||||
vt 0.393701 16.8454
|
||||
f 79/128/16 71/129/16 72/130/15 78/131/15
|
||||
|
||||
v -0.0015 0.0163981 0.0231
|
||||
vt 0.393701 14.3433
|
||||
vn -0.5 0.866025 -0
|
||||
vt -0.393701 14.3433
|
||||
vt -0.393701 13.8295
|
||||
vt 0.393701 13.8295
|
||||
f 80/132/17 70/133/17 71/134/16 79/135/16
|
||||
|
||||
v -0.000776457 0.0166978 0.0231
|
||||
vt 0.393701 10.3674
|
||||
vn -0.258819 0.965926 -0
|
||||
vt -0.393701 10.3674
|
||||
vt -0.393701 9.85353
|
||||
vt 0.393701 9.85353
|
||||
f 81/136/18 69/137/18 70/138/17 80/139/17
|
||||
|
||||
v -9.86988e-018 0.0168 0.0231
|
||||
vt 0.393701 5.70246
|
||||
vt -0.393701 5.70246
|
||||
vt -0.393701 5.18858
|
||||
vt 0.393701 5.18858
|
||||
f 82/140/4 68/141/4 69/142/18 81/143/18
|
||||
|
||||
v 0.000776457 0.0166978 0.0231
|
||||
vt -0.393701 -0.666411
|
||||
vn 0.258819 0.965926 -0
|
||||
v 0.000776457 0.0166978 0.0219
|
||||
vt 0.393701 -0.666411
|
||||
vt 0.393701 -0.152528
|
||||
vt -0.393701 -0.152528
|
||||
f 83/144/19 84/145/19 68/146/4 82/147/4
|
||||
|
||||
v 0.0015 0.0163981 0.0231
|
||||
vt -0.393701 4.39754
|
||||
vn 0.5 0.866025 -0
|
||||
v 0.0015 0.0163981 0.0219
|
||||
vt 0.393701 4.39754
|
||||
vt 0.393701 4.91143
|
||||
vt -0.393701 4.91143
|
||||
f 85/148/20 86/149/20 84/150/19 83/151/19
|
||||
|
||||
v 0.00212132 0.0159213 0.0231
|
||||
vt -0.393701 9.1443
|
||||
vn 0.707107 0.707107 -0
|
||||
v 0.00212132 0.0159213 0.0219
|
||||
vt 0.393701 9.1443
|
||||
vt 0.393701 9.65819
|
||||
vt -0.393701 9.65819
|
||||
f 87/152/21 88/153/21 86/154/20 85/155/20
|
||||
|
||||
v 0.00259808 0.0153 0.0231
|
||||
vt -0.393701 13.2504
|
||||
vn 0.866025 0.5 -0
|
||||
v 0.00259808 0.0153 0.0219
|
||||
vt 0.393701 13.2504
|
||||
vt 0.393701 13.7643
|
||||
vt -0.393701 13.7643
|
||||
f 89/156/22 90/157/22 88/158/21 87/159/21
|
||||
|
||||
v 0.00289778 0.0145765 0.0231
|
||||
vt -0.393701 16.436
|
||||
vn 0.965926 0.258819 -0
|
||||
v 0.00289778 0.0145765 0.0219
|
||||
vt 0.393701 16.436
|
||||
vt 0.393701 16.9498
|
||||
vt -0.393701 16.9498
|
||||
f 91/160/23 92/161/23 90/162/22 89/163/22
|
||||
|
||||
v 0.003 0.0138 0.0231
|
||||
vn 1 -4.75916e-016 -0
|
||||
v 0.003 0.0138 0.0219
|
||||
f 93/118/24 94/119/24 92/116/23 91/117/23
|
||||
|
||||
v 0.00289778 0.0130235 0.0231
|
||||
vn 0.965926 -0.258819 -0
|
||||
f 95/122/25 62/123/25 94/120/24 93/121/24
|
||||
|
||||
v 0.00259808 0.0123 0.0231
|
||||
vn 0.866025 -0.5 -0
|
||||
f 96/126/26 61/127/26 62/124/25 95/125/25
|
||||
|
||||
v 0.00212132 0.0116787 0.0231
|
||||
vn 0.707107 -0.707107 -0
|
||||
f 97/130/27 60/131/27 61/128/26 96/129/26
|
||||
|
||||
v 0.0015 0.0112019 0.0231
|
||||
vn 0.5 -0.866025 -0
|
||||
f 98/134/28 58/135/28 60/132/27 97/133/27
|
||||
|
||||
v 0.000776457 0.0109022 0.0231
|
||||
vn 0.258819 -0.965926 -0
|
||||
f 99/138/29 57/139/29 58/136/28 98/137/28
|
||||
|
||||
v -9.86988e-018 0.0108 0.0231
|
||||
f 100/142/5 56/143/5 57/140/29 99/141/29
|
||||
|
||||
v -0.000776457 0.0109022 0.0231
|
||||
vn -0.258819 -0.965926 -0
|
||||
f 101/146/30 55/147/30 56/144/5 100/145/5
|
||||
|
||||
v -0.0015 0.0112019 0.0231
|
||||
vn -0.5 -0.866025 -0
|
||||
f 102/150/31 54/151/31 55/148/30 101/149/30
|
||||
|
||||
v -0.00212132 0.0116787 0.0231
|
||||
vn -0.707107 -0.707107 -0
|
||||
f 103/154/32 53/155/32 54/152/31 102/153/31
|
||||
|
||||
v -0.00259808 0.0123 0.0231
|
||||
vn -0.866025 -0.5 -0
|
||||
f 104/158/33 52/159/33 53/156/32 103/157/32
|
||||
|
||||
f 76/162/13 51/163/13 52/160/33 104/161/33
|
||||
|
||||
v -0.00206741 0.0126064 0.0231
|
||||
vt 1.59619 18.5081
|
||||
f 104/88/2 105/164/2 76/87/2
|
||||
|
||||
v -0.00168803 0.012112 0.0231
|
||||
vt 1.84512 18.1837
|
||||
f 104/88/2 106/165/2 105/164/2
|
||||
|
||||
v -0.00119362 0.0117326 0.0231
|
||||
vt 2.16954 17.9348
|
||||
f 104/88/2 107/166/2 106/165/2
|
||||
|
||||
f 103/89/2 107/166/2 104/88/2
|
||||
|
||||
v -0.000617862 0.0114941 0.0231
|
||||
vt 2.54733 17.7783
|
||||
f 103/89/2 108/167/2 107/166/2
|
||||
|
||||
v -9.86988e-018 0.0114128 0.0231
|
||||
vt 2.95276 17.7249
|
||||
f 103/89/2 109/168/2 108/167/2
|
||||
|
||||
f 103/89/2 98/94/2 109/168/2
|
||||
|
||||
f 102/90/2 98/94/2 103/89/2
|
||||
|
||||
f 101/91/2 98/94/2 102/90/2
|
||||
|
||||
f 101/91/2 99/93/2 98/94/2
|
||||
|
||||
f 99/93/2 101/91/2 100/92/2
|
||||
|
||||
f 97/96/2 109/168/2 98/94/2
|
||||
|
||||
v 0.000617862 0.0114941 0.0231
|
||||
vt 3.35818 17.7783
|
||||
f 109/168/2 97/96/2 110/169/2
|
||||
|
||||
v 0.00119362 0.0117326 0.0231
|
||||
vt 3.73597 17.9348
|
||||
f 110/169/2 97/96/2 111/170/2
|
||||
|
||||
f 111/170/2 97/96/2 96/97/2
|
||||
|
||||
v 0.00168803 0.012112 0.0231
|
||||
vt 4.06039 18.1837
|
||||
f 111/170/2 96/97/2 112/171/2
|
||||
|
||||
v 0.00206741 0.0126064 0.0231
|
||||
vt 4.30932 18.5081
|
||||
f 112/171/2 96/97/2 113/172/2
|
||||
|
||||
f 113/172/2 96/97/2 95/98/2
|
||||
|
||||
v 0.00230589 0.0131821 0.0231
|
||||
vt 4.46581 18.8859
|
||||
f 113/172/2 95/98/2 114/173/2
|
||||
|
||||
vt 4.92126 19.2913
|
||||
f 114/173/2 95/98/2 93/174/2
|
||||
|
||||
v 0.00238724 0.0138 0.0231
|
||||
vt 4.51918 19.2913
|
||||
f 114/173/2 93/174/2 115/175/2
|
||||
|
||||
vt 4.85418 19.8008
|
||||
f 115/175/2 93/174/2 91/176/2
|
||||
|
||||
v 0.00230589 0.0144179 0.0231
|
||||
vt 4.46581 19.6968
|
||||
f 115/175/2 91/176/2 116/177/2
|
||||
|
||||
v 0.00206741 0.0149936 0.0231
|
||||
vt 4.30932 20.0746
|
||||
f 116/177/2 91/176/2 117/178/2
|
||||
|
||||
vt 4.65753 20.2756
|
||||
f 117/178/2 91/176/2 89/179/2
|
||||
|
||||
v 0.00168803 0.015488 0.0231
|
||||
vt 4.06039 20.399
|
||||
f 117/178/2 89/179/2 118/180/2
|
||||
|
||||
vt 4.3447 20.6833
|
||||
f 118/180/2 89/179/2 87/181/2
|
||||
|
||||
v 0.00119362 0.0158674 0.0231
|
||||
vt 3.73597 20.6479
|
||||
f 118/180/2 87/181/2 119/182/2
|
||||
|
||||
v 0.000617862 0.0161059 0.0231
|
||||
vt 3.35818 20.8044
|
||||
f 119/182/2 87/181/2 120/183/2
|
||||
|
||||
vt 3.93701 20.9961
|
||||
f 120/183/2 87/181/2 85/184/2
|
||||
|
||||
v -9.86988e-018 0.0161872 0.0231
|
||||
vt 2.95276 20.8578
|
||||
f 120/183/2 85/184/2 121/185/2
|
||||
|
||||
f 121/185/2 85/184/2 80/111/2
|
||||
|
||||
f 80/111/2 85/184/2 81/110/2
|
||||
|
||||
vt 3.46224 21.1928
|
||||
f 81/110/2 85/184/2 83/186/2
|
||||
|
||||
f 81/110/2 83/186/2 82/109/2
|
||||
|
||||
v -0.000617862 0.0161059 0.0231
|
||||
vt 2.54733 20.8044
|
||||
f 80/111/2 122/187/2 121/185/2
|
||||
|
||||
f 79/112/2 122/187/2 80/111/2
|
||||
|
||||
v -0.00119362 0.0158674 0.0231
|
||||
vt 2.16954 20.6479
|
||||
f 79/112/2 123/188/2 122/187/2
|
||||
|
||||
v -0.00168803 0.015488 0.0231
|
||||
vt 1.84512 20.399
|
||||
f 79/112/2 124/189/2 123/188/2
|
||||
|
||||
f 78/113/2 124/189/2 79/112/2
|
||||
|
||||
v -0.00206741 0.0149936 0.0231
|
||||
vt 1.59619 20.0746
|
||||
f 78/113/2 125/190/2 124/189/2
|
||||
|
||||
f 77/114/2 125/190/2 78/113/2
|
||||
|
||||
v -0.00230589 0.0144179 0.0231
|
||||
vt 1.4397 19.6968
|
||||
f 77/114/2 126/191/2 125/190/2
|
||||
|
||||
f 75/115/2 126/191/2 77/114/2
|
||||
|
||||
v -0.00238724 0.0138 0.0231
|
||||
vt 1.38633 19.2913
|
||||
f 75/115/2 127/192/2 126/191/2
|
||||
|
||||
v -0.00230589 0.0131821 0.0231
|
||||
vt 1.4397 18.8859
|
||||
f 75/115/2 128/193/2 127/192/2
|
||||
|
||||
f 76/87/2 128/193/2 75/115/2
|
||||
|
||||
f 76/87/2 105/164/2 128/193/2
|
||||
|
||||
v -0.00206741 0.0126064 0.0219
|
||||
vt 0.393701 16.4884
|
||||
v -0.00230589 0.0131821 0.0219
|
||||
vt 0.393701 16.8974
|
||||
vt -0.393701 16.8974
|
||||
vt -0.393701 16.4884
|
||||
f 129/194/22 130/195/23 128/196/23 105/197/22
|
||||
|
||||
usemtl Gray8
|
||||
v -0.00206741 0.0149936 0.0219
|
||||
v -0.00230589 0.0144179 0.0219
|
||||
v -0.00238724 0.0138 0.0219
|
||||
v -0.00168803 0.012112 0.0219
|
||||
v -0.00119362 0.0117326 0.0219
|
||||
v -0.000617862 0.0114941 0.0219
|
||||
v -9.86988e-018 0.0114128 0.0219
|
||||
v 0.000617862 0.0114941 0.0219
|
||||
v 0.00119362 0.0117326 0.0219
|
||||
v 0.00168803 0.012112 0.0219
|
||||
v 0.00206741 0.0126064 0.0219
|
||||
v 0.00230589 0.0131821 0.0219
|
||||
v 0.00238724 0.0138 0.0219
|
||||
v 0.00230589 0.0144179 0.0219
|
||||
v 0.00206741 0.0149936 0.0219
|
||||
v 0.00168803 0.015488 0.0219
|
||||
v 0.00119362 0.0158674 0.0219
|
||||
v 0.000617862 0.0161059 0.0219
|
||||
v -9.86988e-018 0.0161872 0.0219
|
||||
v -0.000617862 0.0161059 0.0219
|
||||
v -0.00119362 0.0158674 0.0219
|
||||
v -0.00168803 0.015488 0.0219
|
||||
f 131/190/2 132/191/2 133/192/2 130/193/2 129/164/2 134/165/2 135/166/2 136/167/2 137/168/2 138/169/2 139/170/2 140/171/2 141/172/2 142/173/2 143/175/2 144/177/2 145/178/2 146/180/2 147/182/2 148/183/2 149/185/2 150/187/2 151/188/2 152/189/2
|
||||
|
||||
usemtl Gray4
|
||||
vt 0.393701 18.7484
|
||||
vt 0.393701 19.1573
|
||||
vt -0.393701 19.1573
|
||||
vt -0.393701 18.7484
|
||||
f 132/198/25 131/199/26 125/200/26 126/201/25
|
||||
|
||||
vt 0.393701 16.8979
|
||||
vt 0.393701 17.3068
|
||||
vt -0.393701 17.3068
|
||||
vt -0.393701 16.8979
|
||||
f 131/202/26 152/203/27 124/204/27 125/205/26
|
||||
|
||||
vt 0.393701 13.8819
|
||||
vt 0.393701 14.2909
|
||||
vt -0.393701 14.2909
|
||||
vt -0.393701 13.8819
|
||||
f 152/206/27 151/207/28 123/208/28 124/209/27
|
||||
|
||||
vt 0.393701 9.90601
|
||||
vt 0.393701 10.3149
|
||||
vt -0.393701 10.3149
|
||||
vt -0.393701 9.90601
|
||||
f 151/210/28 150/211/29 122/212/29 123/213/28
|
||||
|
||||
vt 0.393701 5.24106
|
||||
vt 0.393701 5.64998
|
||||
vt -0.393701 5.64998
|
||||
vt -0.393701 5.24106
|
||||
f 150/214/29 149/215/5 121/216/5 122/217/29
|
||||
|
||||
vt -0.393701 -0.20501
|
||||
vt -0.393701 -0.613929
|
||||
vt 0.393701 -0.613929
|
||||
vt 0.393701 -0.20501
|
||||
f 149/218/5 148/219/30 120/220/30 121/221/5
|
||||
|
||||
vt -0.393701 4.85894
|
||||
vt -0.393701 4.45003
|
||||
vt 0.393701 4.45003
|
||||
vt 0.393701 4.85894
|
||||
f 148/222/30 147/223/31 119/224/31 120/225/30
|
||||
|
||||
vt -0.393701 9.6057
|
||||
vt -0.393701 9.19678
|
||||
vt 0.393701 9.19678
|
||||
vt 0.393701 9.6057
|
||||
f 147/226/31 146/227/32 118/228/32 119/229/31
|
||||
|
||||
vt -0.393701 13.7118
|
||||
vt -0.393701 13.3029
|
||||
vt 0.393701 13.3029
|
||||
vt 0.393701 13.7118
|
||||
f 146/230/32 145/231/33 117/232/33 118/233/32
|
||||
|
||||
f 145/196/33 144/197/13 116/194/13 117/195/33
|
||||
|
||||
vt -0.393701 18.9453
|
||||
vt -0.393701 18.5364
|
||||
vn -1 1.1338e-015 -0
|
||||
vt 0.393701 18.5364
|
||||
vt 0.393701 18.9453
|
||||
f 144/234/13 143/235/34 115/236/34 116/237/13
|
||||
|
||||
vt -0.393701 19.7162
|
||||
vt -0.393701 19.3073
|
||||
vt 0.393701 19.3073
|
||||
vt 0.393701 19.7162
|
||||
f 143/238/34 142/239/14 114/240/14 115/241/34
|
||||
|
||||
f 142/200/14 141/201/15 113/198/15 114/199/14
|
||||
|
||||
f 141/204/15 140/205/16 112/202/16 113/203/15
|
||||
|
||||
f 140/208/16 139/209/17 111/206/17 112/207/16
|
||||
|
||||
f 139/212/17 138/213/18 110/210/18 111/211/17
|
||||
|
||||
f 138/216/18 137/217/4 109/214/4 110/215/18
|
||||
|
||||
f 137/220/4 136/221/19 108/218/19 109/219/4
|
||||
|
||||
f 136/224/19 135/225/20 107/222/20 108/223/19
|
||||
|
||||
f 135/228/20 134/229/21 106/226/21 107/227/20
|
||||
|
||||
f 134/232/21 129/233/22 105/230/22 106/231/21
|
||||
|
||||
vn 1 -5.87897e-016 -0
|
||||
f 133/240/35 132/241/25 126/238/25 127/239/35
|
||||
|
||||
f 130/236/23 133/237/35 127/234/35 128/235/23
|
||||
|
||||
usemtl Gray6
|
||||
f 62/98/2 63/7/2 94/174/2
|
||||
|
||||
f 94/174/2 63/7/2 92/176/2
|
||||
|
||||
f 92/176/2 63/7/2 90/179/2
|
||||
|
||||
f 90/179/2 63/7/2 88/181/2
|
||||
|
||||
f 88/181/2 63/7/2 86/184/2
|
||||
|
||||
f 86/184/2 63/7/2 84/186/2
|
||||
|
||||
f 84/186/2 63/7/2 68/109/2
|
||||
|
||||
v 0.0015 0.0162 -0.0195
|
||||
vt -3.93701 20.8661
|
||||
f 64/44/7 153/242/7 47/39/7
|
||||
|
||||
v 0.0015 0.012 -0.0195
|
||||
vt -3.93701 18.1102
|
||||
f 64/44/7 154/243/7 153/242/7
|
||||
|
||||
vt -5.51181 14.9606
|
||||
f 67/244/7 154/243/7 64/44/7
|
||||
|
||||
v -0.0015 0.012 -0.0195
|
||||
vt -1.9685 18.1102
|
||||
f 154/243/7 67/244/7 155/245/7
|
||||
|
||||
f 48/79/7 155/245/7 67/244/7
|
||||
|
||||
f 155/245/7 48/79/7 47/39/7
|
||||
|
||||
v -0.0015 0.0162 -0.0195
|
||||
vt -1.9685 20.8661
|
||||
f 155/245/7 47/39/7 156/246/7
|
||||
|
||||
f 156/246/7 47/39/7 153/242/7
|
||||
|
||||
usemtl Gray4
|
||||
v -0.0015 0.0162 -0.0213
|
||||
vt 1.9685 28.7402
|
||||
vt 1.9685 27.5591
|
||||
vt 3.93701 27.5591
|
||||
v 0.0015 0.0162 -0.0213
|
||||
vt 3.93701 28.7402
|
||||
f 157/247/4 156/248/4 153/249/4 158/250/4
|
||||
|
||||
vt -27.5591 20.8661
|
||||
vt -28.7402 20.8661
|
||||
v -0.0015 0.0138 -0.0213
|
||||
vt -28.7402 19.2913
|
||||
vt -27.5591 18.1102
|
||||
f 156/251/3 157/252/3 159/253/3 155/254/3
|
||||
|
||||
vt -1.9685 19.2913
|
||||
v 0.0015 0.0138 -0.0213
|
||||
vt -3.93701 19.2913
|
||||
f 159/255/7 157/246/7 158/242/7 160/256/7
|
||||
|
||||
vt 27.5591 18.1102
|
||||
vt 28.7402 19.2913
|
||||
vt 28.7402 20.8661
|
||||
vt 27.5591 20.8661
|
||||
f 154/257/1 160/258/1 158/259/1 153/260/1
|
||||
|
||||
vt -1.9685 32.2931
|
||||
vn 0 -0.707107 -0.707107
|
||||
vt -1.9685 33.9634
|
||||
vt -3.93701 33.9634
|
||||
vt -3.93701 32.2931
|
||||
f 155/261/36 159/262/36 160/263/36 154/264/36
|
||||
|
||||
usemtl Gray6
|
||||
f 155/245/7 156/246/7 153/242/7 154/243/7
|
||||
|
||||
usemtl Gray4
|
||||
vt -5.51181 25.5906
|
||||
vt -0.393701 25.5906
|
||||
vt -0.393701 27.5591
|
||||
vt -5.51181 27.5591
|
||||
f 66/265/5 49/266/5 48/267/5 67/268/5
|
||||
|
||||
usemtl Gray6
|
||||
vt -5.51181 -7.51457
|
||||
vn 0 0.254493 -0.967075
|
||||
vt -0.393701 -7.51457
|
||||
vt -0.393701 7.95542
|
||||
vt -5.51181 7.95542
|
||||
f 34/269/37 33/270/37 49/271/37 66/272/37
|
||||
|
||||
v 0.0024 0.0072 0.00335799
|
||||
vt -4.52756 12.5604
|
||||
vt -5.51181 17.7165
|
||||
f 59/32/5 161/273/5 65/274/5
|
||||
|
||||
v -0.0024 0.0072 0.00335799
|
||||
vt -1.37795 12.5604
|
||||
f 59/32/5 162/275/5 161/273/5
|
||||
|
||||
f 45/33/5 162/275/5 59/32/5
|
||||
|
||||
vt -0.393701 17.7165
|
||||
f 162/275/5 45/33/5 50/276/5
|
||||
|
||||
v -0.0024 0.0072 0.00155799
|
||||
vt -1.37795 13.7415
|
||||
f 162/275/5 50/276/5 163/277/5
|
||||
|
||||
f 65/274/5 163/277/5 50/276/5
|
||||
|
||||
v 0.0024 0.0072 0.00155799
|
||||
vt -4.52756 13.7415
|
||||
f 163/277/5 65/274/5 164/278/5
|
||||
|
||||
f 164/278/5 65/274/5 161/273/5
|
||||
|
||||
usemtl Gray4
|
||||
vt 13.7415 14.9606
|
||||
vt 12.5604 14.9606
|
||||
v 0.0024 -2.81997e-017 0.00335799
|
||||
vt 12.5604 10.2362
|
||||
v 0.0024 -2.81997e-017 -0.00639474
|
||||
vt 18.9598 10.2362
|
||||
v 0.0024 0.0018 -0.00592105
|
||||
vt 18.649 11.4173
|
||||
v 0.0024 0.0018 0.00155799
|
||||
vt 13.7415 11.4173
|
||||
f 164/279/1 161/280/1 165/281/1 166/282/1 167/283/1 168/284/1
|
||||
|
||||
vt 4.52756 14.9606
|
||||
vt 1.37795 14.9606
|
||||
v -0.0024 -2.81997e-017 0.00335799
|
||||
vt 1.37795 10.2362
|
||||
vt 4.52756 10.2362
|
||||
f 161/285/2 162/286/2 169/287/2 165/288/2
|
||||
|
||||
vt -12.5604 14.9606
|
||||
vt -13.7415 14.9606
|
||||
v -0.0024 0.0018 0.00155799
|
||||
vt -13.7415 11.4173
|
||||
v -0.0024 0.0018 -0.00592105
|
||||
vt -18.649 11.4173
|
||||
v -0.0024 -2.81997e-017 -0.00639474
|
||||
vt -18.9598 10.2362
|
||||
vt -12.5604 10.2362
|
||||
f 162/289/3 163/290/3 170/291/3 171/292/3 172/293/3 169/294/3
|
||||
|
||||
vt -4.52756 14.9606
|
||||
vt -4.52756 11.4173
|
||||
vt -1.37795 11.4173
|
||||
vt -1.37795 14.9606
|
||||
f 164/295/7 168/296/7 170/297/7 163/298/7
|
||||
|
||||
vt 1.37795 13.7415
|
||||
vt 4.52756 13.7415
|
||||
vt 4.52756 18.649
|
||||
vt 1.37795 18.649
|
||||
f 170/299/4 168/300/4 167/301/4 171/302/4
|
||||
|
||||
usemtl Gray6
|
||||
vt 1.37795 6.29536
|
||||
vn 0 -0.254493 0.967075
|
||||
vt 1.37795 5.07405
|
||||
vt 4.52756 5.07405
|
||||
vt 4.52756 6.29536
|
||||
f 171/303/38 172/304/38 166/305/38 167/306/38
|
||||
|
||||
vt 0.393701 9.9593
|
||||
vn -1.49111e-029 -0.254493 0.967075
|
||||
f 50/307/39 172/304/39 171/303/39
|
||||
|
||||
vt 0.393701 -5.51068
|
||||
f 36/308/39 172/304/39 50/307/39
|
||||
|
||||
f 172/304/39 36/308/39 166/305/39
|
||||
|
||||
vt 5.51181 -5.51068
|
||||
f 35/309/39 166/305/39 36/308/39
|
||||
|
||||
vt 5.51181 9.9593
|
||||
f 166/305/39 35/309/39 65/310/39
|
||||
|
||||
f 166/305/39 65/310/39 167/306/39
|
||||
|
||||
f 167/306/39 65/310/39 171/303/39
|
||||
|
||||
f 50/307/39 171/303/39 65/310/39
|
||||
|
||||
usemtl Gray4
|
||||
vt -1.37795 18.9598
|
||||
vt -4.52756 18.9598
|
||||
f 169/275/5 172/311/5 166/312/5 165/273/5
|
||||
|
||||
usemtl Gray6
|
||||
f 37/63/4 34/65/4 35/7/4
|
||||
|
||||
vt 1.42109e-014 0
|
||||
vt 1.42109e-014 -1.5748
|
||||
vt 5.90551 -1.5748
|
||||
f 43/23/2 39/313/2 41/314/2 44/315/2
|
||||
|
||||
vt -5.90551 21.2598
|
||||
vt -1.42109e-014 21.2598
|
||||
vt -5.90551 29.9213
|
||||
f 44/316/5 41/317/5 40/66/5 42/318/5
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c1232b0a1b78ddf44bd877453fb7a84c
|
||||
timeCreated: 1449962051
|
||||
licenseType: Store
|
||||
ModelImporter:
|
||||
serializedVersion: 18
|
||||
fileIDToRecycleName:
|
||||
100000: Mesh1_Group2_Group1_Model
|
||||
100002: Mesh2_Group3_Group1_Model
|
||||
100004: //RootNode
|
||||
400000: Mesh1_Group2_Group1_Model
|
||||
400002: Mesh2_Group3_Group1_Model
|
||||
400004: //RootNode
|
||||
2300000: Mesh1_Group2_Group1_Model
|
||||
2300002: Mesh2_Group3_Group1_Model
|
||||
3300000: Mesh1_Group2_Group1_Model
|
||||
3300002: Mesh2_Group3_Group1_Model
|
||||
4300000: Mesh1_Group2_Group1_Model
|
||||
4300002: Mesh2_Group3_Group1_Model
|
||||
materials:
|
||||
importMaterials: 1
|
||||
materialName: 0
|
||||
materialSearch: 1
|
||||
animations:
|
||||
legacyGenerateAnimations: 4
|
||||
bakeSimulation: 0
|
||||
optimizeGameObjects: 0
|
||||
motionNodeName:
|
||||
animationImportErrors:
|
||||
animationImportWarnings:
|
||||
animationRetargetingWarnings:
|
||||
animationDoRetargetingWarnings: 0
|
||||
animationCompression: 1
|
||||
animationRotationError: .5
|
||||
animationPositionError: .5
|
||||
animationScaleError: .5
|
||||
animationWrapMode: 0
|
||||
extraExposedTransformPaths: []
|
||||
clipAnimations: []
|
||||
isReadable: 1
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 1
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
importBlendShapes: 1
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
optimizeMeshForGPU: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVPackMargin: 4
|
||||
useFileScale: 1
|
||||
tangentSpace:
|
||||
normalSmoothAngle: 60
|
||||
splitTangentsAcrossUV: 1
|
||||
normalImportMode: 0
|
||||
tangentImportMode: 1
|
||||
importAnimation: 1
|
||||
copyAvatar: 0
|
||||
humanDescription:
|
||||
human: []
|
||||
skeleton: []
|
||||
armTwist: .5
|
||||
foreArmTwist: .5
|
||||
upperLegTwist: .5
|
||||
legTwist: .5
|
||||
armStretch: .0500000007
|
||||
legStretch: .0500000007
|
||||
feetSpacing: 0
|
||||
rootMotionBoneName:
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
animationType: 0
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 67d3f94386c0b71468666520386ce0b9
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Gray4
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _EMISSION
|
||||
m_LightmapFlags: 1
|
||||
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
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.666667, g: 0.666667, b: 0.666667, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 36f616b823d57714b97b12b9319c9db9
|
||||
timeCreated: 1449962048
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Gray6
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _EMISSION
|
||||
m_LightmapFlags: 1
|
||||
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
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.376471, g: 0.376471, b: 0.376471, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1aa329960fc39aa4490b3a9e7e965fa8
|
||||
timeCreated: 1449962047
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Gray8
|
||||
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ShaderKeywords: _EMISSION
|
||||
m_LightmapFlags: 1
|
||||
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
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.266667, g: 0.266667, b: 0.266667, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e86c377702aa20748ac223d70f899dc1
|
||||
timeCreated: 1449962047
|
||||
licenseType: Store
|
||||
NativeFormatImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Mesh1_Group2_Group1_ModelMat
|
||||
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
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 15a077ea89f165e44938d08352278a6d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,77 @@
|
||||
%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: Mesh2_Group3_Group1_ModelMat
|
||||
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
|
||||
- _GlossyReflections: 1
|
||||
- _Metallic: 0
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _UVSec: 0
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _Color: {r: 0.8, g: 0.8, b: 0.8, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ef0c6639b7aef1d44b199f31c51a272a
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d55bbb2250d24b94785e2ee08c45c5f4
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,16 @@
|
||||
%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: 11500000, guid: 4489d77032a81ef42b0067acf2737d4d, type: 3}
|
||||
m_Name: ColliderRollback_Prefabs
|
||||
m_EditorClassIdentifier:
|
||||
_prefabs:
|
||||
- {fileID: 8475222101369129519, guid: 8cf33e8e99a9b0c4c8f29ff725650de6, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d9693011b7416444aa06cafe900e23c0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d8fc0da1e1391e8409064c221f02358b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4385a793e032d634bb912f84a23d6db1
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,163 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4117607941181585914
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4117607941181585915}
|
||||
- component: {fileID: 8475222101369129519}
|
||||
- component: {fileID: 2759061792589502182}
|
||||
- component: {fileID: 1348621277}
|
||||
- component: {fileID: 1348621278}
|
||||
- component: {fileID: 5081159371976248031}
|
||||
m_Layer: 2
|
||||
m_Name: Player
|
||||
m_TagString: Player
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &4117607941181585915
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4117607941181585914}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 2, z: -2}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &8475222101369129519
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4117607941181585914}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 26b716c41e9b56b4baafaf13a523ba2e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
NetworkObserver: {fileID: 0}
|
||||
<PrefabId>k__BackingField: 27
|
||||
<SpawnableCollectionId>k__BackingField: 0
|
||||
_scenePathHash: 0
|
||||
<SceneId>k__BackingField: 0
|
||||
<AssetPathHash>k__BackingField: 7473726319608011331
|
||||
AdaptiveInterpolationValue: 4
|
||||
<IsNested>k__BackingField: 0
|
||||
_enablePrediction: 0
|
||||
_predictionType: 0
|
||||
_graphicalObject: {fileID: 0}
|
||||
_enableStateForwarding: 1
|
||||
_ownerInterpolation: 1
|
||||
_enableTeleport: 0
|
||||
_ownerTeleportThreshold: 1
|
||||
_spectatorAdaptiveInterpolation: 1
|
||||
_spectatorInterpolation: 1
|
||||
_adaptiveSmoothingType: 0
|
||||
_customSmoothingData:
|
||||
InterpolationPercent: 1
|
||||
CollisionInterpolationPercent: 0.1
|
||||
InterpolationDecreaseStep: 1
|
||||
InterpolationIncreaseStep: 3
|
||||
_preconfiguredSmoothingDataPreview:
|
||||
InterpolationPercent: 0.5
|
||||
CollisionInterpolationPercent: 0.05
|
||||
InterpolationDecreaseStep: 1
|
||||
InterpolationIncreaseStep: 2
|
||||
<ComponentIndex>k__BackingField: 0
|
||||
<PredictedSpawn>k__BackingField: {fileID: 0}
|
||||
_networkBehaviours:
|
||||
- {fileID: 2759061792589502182}
|
||||
- {fileID: 1348621277}
|
||||
- {fileID: 1348621278}
|
||||
<ParentNetworkObject>k__BackingField: {fileID: 0}
|
||||
<ChildNetworkObjects>k__BackingField: []
|
||||
SerializedTransformProperties:
|
||||
Position: {x: 0, y: 0, z: 0}
|
||||
Rotation: {x: 0, y: 0, z: 0, w: 0}
|
||||
LocalScale: {x: 0, y: 0, z: 0}
|
||||
_isNetworked: 1
|
||||
_isGlobal: 0
|
||||
_initializeOrder: 0
|
||||
_defaultDespawnType: 0
|
||||
--- !u!114 &2759061792589502182
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4117607941181585914}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9d3558aad46c24549bea48d0e3938264, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_componentIndexCache: 0
|
||||
_addedNetworkObject: {fileID: 8475222101369129519}
|
||||
_networkObjectCache: {fileID: 8475222101369129519}
|
||||
_hitboxLayer:
|
||||
serializedVersion: 2
|
||||
m_Bits: 32
|
||||
_audio: {fileID: 8300000, guid: 0330762d2b3c8d641bfe11ad89b7e196, type: 3}
|
||||
_muzzleFlashPrefab: {fileID: 39148481766341303, guid: 4385a793e032d634bb912f84a23d6db1,
|
||||
type: 3}
|
||||
--- !u!114 &1348621277
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4117607941181585914}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e6d656f377f37164d8d7431aa4e43cdb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_componentIndexCache: 1
|
||||
_addedNetworkObject: {fileID: 8475222101369129519}
|
||||
_networkObjectCache: {fileID: 8475222101369129519}
|
||||
--- !u!114 &1348621278
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4117607941181585914}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: c718ab30626bbd648952910f74780a06, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_componentIndexCache: 2
|
||||
_addedNetworkObject: {fileID: 8475222101369129519}
|
||||
_networkObjectCache: {fileID: 8475222101369129519}
|
||||
_moveRate: 3
|
||||
--- !u!143 &5081159371976248031
|
||||
CharacterController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4117607941181585914}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Height: 1.85
|
||||
m_Radius: 0.5
|
||||
m_SlopeLimit: 45
|
||||
m_StepOffset: 0.3
|
||||
m_SkinWidth: 0.08
|
||||
m_MinMoveDistance: 0.001
|
||||
m_Center: {x: 0, y: 0.925, z: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8cf33e8e99a9b0c4c8f29ff725650de6
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0f2b8542dea4ed449a71c582716ed888
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,95 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &5088285619167334560
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5088285619167334572}
|
||||
- component: {fileID: 5088285619167334563}
|
||||
- component: {fileID: 5088285619167334562}
|
||||
- component: {fileID: 7203670863068453979}
|
||||
m_Layer: 0
|
||||
m_Name: ClientPosition
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5088285619167334572
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5088285619167334560}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 2.04, y: 1.37, z: -3.993}
|
||||
m_LocalScale: {x: 1, y: 1.85, z: 0.1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5088285619167334563
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5088285619167334560}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &5088285619167334562
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5088285619167334560}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 997fc4a5ccc62814697fc91eb139e535, 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
|
||||
--- !u!114 &7203670863068453979
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5088285619167334560}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3f244f524a030c6459722c6594b1e9bd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_delay: 3
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ad8f5b5504b971d42886f4f6fd087d90
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,95 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &7134941405922954312
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2532797443735268486}
|
||||
- component: {fileID: 5847025287746828581}
|
||||
- component: {fileID: 2682424605327152458}
|
||||
- component: {fileID: 6822465367542887163}
|
||||
m_Layer: 0
|
||||
m_Name: ServerPosition
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2532797443735268486
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7134941405922954312}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 3.85, y: 1.37, z: -3.993}
|
||||
m_LocalScale: {x: 1, y: 1.85, z: 0.1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &5847025287746828581
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7134941405922954312}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &2682424605327152458
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7134941405922954312}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 14cdcc3d5d8692d469297ede7ced7ab8, 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
|
||||
--- !u!114 &6822465367542887163
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7134941405922954312}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3f244f524a030c6459722c6594b1e9bd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_delay: 3
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 85cfddb33a414594490116dc8e2a91f4
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,282 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &4295747174325081366
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8244491120346562302}
|
||||
- component: {fileID: 5312765372148467592}
|
||||
- component: {fileID: 2637820444415577480}
|
||||
m_Layer: 5
|
||||
m_Name: Text
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8244491120346562302
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4295747174325081366}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 6334056160868253460}
|
||||
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 &5312765372148467592
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4295747174325081366}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &2637820444415577480
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4295747174325081366}
|
||||
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_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: 1
|
||||
m_MinSize: 14
|
||||
m_MaxSize: 36
|
||||
m_Alignment: 4
|
||||
m_AlignByGeometry: 0
|
||||
m_RichText: 1
|
||||
m_HorizontalOverflow: 0
|
||||
m_VerticalOverflow: 0
|
||||
m_LineSpacing: 1
|
||||
m_Text:
|
||||
--- !u!1 &6334056159345675329
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6334056159345675354}
|
||||
- component: {fileID: 6334056159345675333}
|
||||
- component: {fileID: 6334056159345675332}
|
||||
- component: {fileID: 6334056159345675335}
|
||||
- component: {fileID: 6334056159345675334}
|
||||
- component: {fileID: 1319350220}
|
||||
m_Layer: 5
|
||||
m_Name: TextCanvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6334056159345675354
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056159345675329}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 6334056160868253460}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0, y: 0}
|
||||
--- !u!223 &6334056159345675333
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056159345675329}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_AdditionalShaderChannelsFlag: 25
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &6334056159345675332
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056159345675329}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 0
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 800, y: 600}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 0
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
--- !u!114 &6334056159345675335
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056159345675329}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!114 &6334056159345675334
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056159345675329}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0dc71af4e9bb144195230171a19cca9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_text: {fileID: 2637820444415577480}
|
||||
--- !u!114 &1319350220
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056159345675329}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3f244f524a030c6459722c6594b1e9bd, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
_delay: 3
|
||||
--- !u!1 &6334056160868253463
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6334056160868253460}
|
||||
- component: {fileID: 6334056160868253482}
|
||||
- component: {fileID: 6334056160868253461}
|
||||
m_Layer: 5
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6334056160868253460
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056160868253463}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 8244491120346562302}
|
||||
m_Father: {fileID: 6334056159345675354}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 1}
|
||||
m_AnchorMax: {x: 1, y: 1}
|
||||
m_AnchoredPosition: {x: 0, y: -30.1}
|
||||
m_SizeDelta: {x: 0, y: 60.16568}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &6334056160868253482
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056160868253463}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &6334056160868253461
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6334056160868253463}
|
||||
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: 0, g: 0, b: 0, a: 0.49019608}
|
||||
m_RaycastTarget: 1
|
||||
m_Maskable: 1
|
||||
m_OnCullStateChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_Sprite: {fileID: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a7bbd13c7452746409efbaeae6a0d8e3
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 79a89eaf9d5b7364e9a9f0e6ae485f84
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9e30e3df1ec43184daee875457d49364
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af8606f905937fc419c0dfcad970cd1d
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,17 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
public class DestroyAfterDelay : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private float _delay = 1f;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
Destroy(gameObject, _delay);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f244f524a030c6459722c6594b1e9bd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7a9331e21bfaa0a4aaac4ffe7d8d644c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,67 @@
|
||||
using FishNet.Object;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// DEMO. CODE IS NOT OPTIMIZED.
|
||||
/// Aims the camera.
|
||||
/// </summary>
|
||||
public class Aim : NetworkBehaviour
|
||||
{
|
||||
|
||||
public PlayerCamera PlayerCamera { get; private set; }
|
||||
private readonly Vector3 _offset = new Vector3(0f, 1.65f, 0f);
|
||||
|
||||
public override void OnStartClient()
|
||||
{
|
||||
if (base.IsOwner)
|
||||
PlayerCamera = Camera.main.transform.GetComponent<PlayerCamera>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (!base.IsOwner || PlayerCamera == null)
|
||||
return;
|
||||
|
||||
Cursor.lockState = CursorLockMode.Locked;
|
||||
Cursor.visible = false;
|
||||
MoveAim();
|
||||
MoveCamera();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Aims camera.
|
||||
/// </summary>
|
||||
private void MoveAim()
|
||||
{
|
||||
float speed = 2f;
|
||||
//Yaw.
|
||||
transform.Rotate(new Vector3(0f, Input.GetAxis("Mouse X") * speed, 0f));
|
||||
//Pitch.
|
||||
float pitch = PlayerCamera.transform.eulerAngles.x - (Input.GetAxis("Mouse Y") * speed);
|
||||
/* If not signed on X then make it
|
||||
* signed for easy clamping. */
|
||||
if (pitch > 180f)
|
||||
pitch -= 360f;
|
||||
pitch = Mathf.Clamp(pitch, -89f, 89f);
|
||||
|
||||
PlayerCamera.transform.eulerAngles = new Vector3(pitch, transform.eulerAngles.y, transform.eulerAngles.z);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Moves camera.
|
||||
/// </summary>
|
||||
private void MoveCamera()
|
||||
{
|
||||
PlayerCamera.transform.position = transform.position + _offset;
|
||||
PlayerCamera.transform.rotation = Quaternion.Euler(PlayerCamera.transform.eulerAngles.x, transform.eulerAngles.y, transform.eulerAngles.z);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6d656f377f37164d8d7431aa4e43cdb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
using FishNet.Component.ColliderRollback;
|
||||
using FishNet.Managing.Timing;
|
||||
using FishNet.Object;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// DEMO. CODE IS NOT OPTIMIZED.
|
||||
/// Fires at objects.
|
||||
/// </summary>
|
||||
public class Fire : NetworkBehaviour
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d3558aad46c24549bea48d0e3938264
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,19 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// DEMO. CODE IS NOT OPTIMIZED.
|
||||
/// Doesn't do much...
|
||||
/// </summary>
|
||||
public class PlayerCamera : MonoBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// MuzzleFlash on the weapon.
|
||||
/// </summary>
|
||||
public Transform MuzzleFlash;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fe0209d73083bf744ba4925f8cad7144
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,50 @@
|
||||
using FishNet.Object;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// DEMO. CODE IS NOT OPTIMIZED.
|
||||
/// Moves the player around.
|
||||
/// </summary>
|
||||
public class PlayerMotor : NetworkBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private float _moveRate = 3f;
|
||||
|
||||
private CharacterController _characterController;
|
||||
|
||||
public override void OnStartClient()
|
||||
{
|
||||
if (base.IsOwner)
|
||||
_characterController = GetComponent<CharacterController>();
|
||||
}
|
||||
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (base.IsOwner)
|
||||
{
|
||||
Move();
|
||||
}
|
||||
}
|
||||
|
||||
private void Move()
|
||||
{
|
||||
if (_characterController == null)
|
||||
return;
|
||||
|
||||
Vector3 gravity = new Vector3(0f, -10f, 0f);
|
||||
Vector3 inputs = transform.TransformDirection(
|
||||
new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical"))
|
||||
);
|
||||
|
||||
_characterController.Move((gravity + inputs) * _moveRate * Time.deltaTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c718ab30626bbd648952910f74780a06
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9b80990f4a80a944c9394e21c9c2187c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,95 @@
|
||||
using FishNet.Connection;
|
||||
using FishNet.Managing;
|
||||
using FishNet.Managing.Timing;
|
||||
using FishNet.Object;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
/// <summary>
|
||||
/// DEMO. CODE IS NOT OPTIMIZED.
|
||||
/// Shows where an object was when client hit it, and where it was after server rolled it back.
|
||||
/// </summary>
|
||||
|
||||
public class RollbackVisualizer : NetworkBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private GameObject _originalPrefab;
|
||||
[SerializeField]
|
||||
private GameObject _rollbackPrefab;
|
||||
[SerializeField]
|
||||
private TextCanvas _textCanvasPrefab;
|
||||
|
||||
/// <summary>
|
||||
/// Average accuracy over the past 30 shots.
|
||||
/// </summary>
|
||||
private List<float> _accuracyAverage = new List<float>();
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
_accuracyAverage.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shows difference between where object was when client shot it, and where it was after rollback.
|
||||
/// </summary>
|
||||
/// <param name="original"></param>
|
||||
/// <param name="rolledBack"></param>
|
||||
[Server]
|
||||
public void ShowDifference(NetworkObject clientObject, Vector3 original, Vector3 rolledBack)
|
||||
{
|
||||
//Only send to client if not host.
|
||||
if (!base.IsHost)
|
||||
{
|
||||
float difference = Vector3.Distance(original, rolledBack);
|
||||
PrintAverage(false, difference, base.NetworkManager);
|
||||
TargetShowDifference(clientObject.Owner, original, rolledBack);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[TargetRpc]
|
||||
private void TargetShowDifference(NetworkConnection conn, Vector3 original, Vector3 rollback)
|
||||
{
|
||||
Instantiate(_originalPrefab, original, transform.rotation);
|
||||
Instantiate(_rollbackPrefab, rollback, transform.rotation);
|
||||
|
||||
float difference = Vector3.Distance(original, rollback);
|
||||
string accuracyText = PrintAverage(true, difference, base.NetworkManager);
|
||||
TextCanvas tc = Instantiate(_textCanvasPrefab);
|
||||
tc.SetText(accuracyText);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Prints an average accuracy, returning what was printed.
|
||||
/// </summary>
|
||||
/// <param name="fromServer">True if difference is received from the server.</param>
|
||||
private string PrintAverage(bool fromServer, float difference, NetworkManager nm)
|
||||
{
|
||||
//If clientHost...
|
||||
if (nm.IsHost)
|
||||
{
|
||||
string result = $"Accuracy will not show properly when as clientHost.{Environment.NewLine}Use a separate client and server for testing.";
|
||||
Debug.Log(result);
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
_accuracyAverage.Add(difference);
|
||||
if (_accuracyAverage.Count > 20)
|
||||
_accuracyAverage.RemoveAt(0);
|
||||
|
||||
string currentHit = $"Accuracy is within {difference.ToString("0.0000")} units.";
|
||||
string allHit = $"{_accuracyAverage.Count} hit average is {(_accuracyAverage.Sum() / _accuracyAverage.Count).ToString("0.0000")}.";
|
||||
string result = $"{currentHit} {allHit}";
|
||||
Debug.Log(result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c5d5c9fcdb14704d9c64b18dc05a809
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,29 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
public class TextCanvas : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private Text _text;
|
||||
|
||||
private static TextCanvas _instance;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (_instance != null)
|
||||
Destroy(_instance.gameObject);
|
||||
|
||||
_instance = this;
|
||||
}
|
||||
|
||||
public void SetText(string text)
|
||||
{
|
||||
_text.text = text;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d0dc71af4e9bb144195230171a19cca9
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,35 @@
|
||||
using FishNet.Object;
|
||||
using UnityEngine;
|
||||
|
||||
|
||||
namespace FishNet.Example.ColliderRollbacks
|
||||
{
|
||||
|
||||
public class Strafe : NetworkBehaviour
|
||||
{
|
||||
public float MoveRate = 2f;
|
||||
public float MoveDistance = 3f;
|
||||
|
||||
private bool _movingRight = true;
|
||||
private float _startX;
|
||||
public override void OnStartServer()
|
||||
{
|
||||
|
||||
_startX = transform.position.x;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (base.IsServer)
|
||||
{
|
||||
float x = (_movingRight) ? _startX + MoveDistance : _startX - MoveDistance;
|
||||
Vector3 goal = new Vector3(x, transform.position.y, transform.position.z);
|
||||
transform.position = Vector3.MoveTowards(transform.position, goal, MoveRate * Time.deltaTime);
|
||||
if (transform.position == goal)
|
||||
_movingRight = !_movingRight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 088014ab71fc022458b82ed8c9792b1b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7782cde83489d9a4ca40e344c67aa02a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1,104 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dd2a76027478bf540b7194d78248edf8
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 11
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: -1
|
||||
mipBias: -100
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: -1
|
||||
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
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 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
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb2e86322ed960149a79e8ed8199b52b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.3 KiB |
@@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 155f67fd8750f8e4e83c8efb1731f3a0
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
externalObjects: {}
|
||||
serializedVersion: 7
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
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
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: -1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: -1
|
||||
aniso: 2
|
||||
mipBias: -100
|
||||
wrapU: -1
|
||||
wrapV: -1
|
||||
wrapW: -1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
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: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 2
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
- serializedVersion: 2
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
8
phr/StickGame/Assets/FishNet/Demos/CustomSyncType.meta
Normal file
8
phr/StickGame/Assets/FishNet/Demos/CustomSyncType.meta
Normal file
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6860196879fb52a408948f34a9ad992a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ae35102a88f9145439386a0fcf0a72e5
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,17 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Example.ComponentStateSync
|
||||
{
|
||||
|
||||
|
||||
public class AMonoScript : MonoBehaviour
|
||||
{
|
||||
|
||||
private void Start()
|
||||
{
|
||||
//Start is here to show enabled toggle within inspector.
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a5821b28e5b90ef44b4910a640482c15
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,155 @@
|
||||
using FishNet.Documenting;
|
||||
using FishNet.Managing.Logging;
|
||||
using FishNet.Object.Synchronizing;
|
||||
using FishNet.Object.Synchronizing.Internal;
|
||||
using FishNet.Serializing;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Example.ComponentStateSync
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// It's very important to exclude this from codegen.
|
||||
/// However, whichever value you are synchronizing must not be excluded. This is why the value is outside the StructySync class.
|
||||
/// </summary>
|
||||
public class ComponentStateSync<T> : SyncBase, ICustomSync where T : MonoBehaviour
|
||||
{
|
||||
#region Public.
|
||||
/// <summary>
|
||||
/// Gets or Sets the enabled state for Component.
|
||||
/// </summary>
|
||||
public bool Enabled
|
||||
{
|
||||
get => (Component == null) ? false : GetState();
|
||||
set => SetState(value);
|
||||
}
|
||||
/// <summary>
|
||||
/// Component to state sync.
|
||||
/// </summary>
|
||||
public T Component { get; private set; }
|
||||
/// <summary>
|
||||
/// Delegate signature for when the component changes.
|
||||
/// </summary>
|
||||
public delegate void StateChanged(T component, bool prevState, bool nextState, bool asServer);
|
||||
/// <summary>
|
||||
/// Called when the component state changes.
|
||||
/// </summary>
|
||||
public event StateChanged OnChange;
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Initializes this StateSync with a component.
|
||||
/// </summary>
|
||||
/// <param name="monoComponent"></param>
|
||||
public void Initialize(T component)
|
||||
{
|
||||
Component = component;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets the enabled state for Component.
|
||||
/// </summary>
|
||||
/// <param name="enabled"></param>
|
||||
private void SetState(bool enabled)
|
||||
{
|
||||
if (base.NetworkManager == null)
|
||||
return;
|
||||
|
||||
if (Component == null)
|
||||
NetworkManager.LogError($"State cannot be changed as Initialize has not been called with a valid component.");
|
||||
|
||||
//If hasn't changed then ignore.
|
||||
bool prev = GetState();
|
||||
if (enabled == prev)
|
||||
return;
|
||||
|
||||
//Set to new value and add operation.
|
||||
Component.enabled = enabled;
|
||||
AddOperation(Component, prev, enabled);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the enabled state for Component.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private bool GetState()
|
||||
{
|
||||
return Component.enabled;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds an operation to synchronize.
|
||||
/// </summary>
|
||||
private void AddOperation(T component, bool prev, bool next)
|
||||
{
|
||||
if (!base.IsRegistered)
|
||||
return;
|
||||
|
||||
if (base.NetworkManager != null && !base.NetworkBehaviour.IsServer)
|
||||
{
|
||||
NetworkManager.LogWarning($"Cannot complete operation as server when server is not active.");
|
||||
return;
|
||||
}
|
||||
|
||||
base.Dirty();
|
||||
|
||||
//Data can currently only be set from server, so this is always asServer.
|
||||
bool asServer = true;
|
||||
OnChange?.Invoke(component, prev, next, asServer);
|
||||
}
|
||||
/// <summary>
|
||||
/// Writes all changed values.
|
||||
/// </summary>
|
||||
///<param name="resetSyncTick">True to set the next time data may sync.</param>
|
||||
public override void WriteDelta(PooledWriter writer, bool resetSyncTick = true)
|
||||
{
|
||||
base.WriteDelta(writer, resetSyncTick);
|
||||
writer.WriteBoolean(Component.enabled);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Writes all values.
|
||||
/// </summary>
|
||||
public override void WriteFull(PooledWriter writer)
|
||||
{
|
||||
/* Always write full for this custom sync type.
|
||||
* It would be difficult to know if the
|
||||
* state has changed given it's a boolean, and
|
||||
* may or may not be true/false after pooling is added. */
|
||||
WriteDelta(writer, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Reads and sets the current values for server or client.
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
[APIExclude]
|
||||
public override void Read(PooledReader reader, bool asServer)
|
||||
{
|
||||
bool nextValue = reader.ReadBoolean();
|
||||
if (base.NetworkManager == null)
|
||||
return;
|
||||
|
||||
bool prevValue = GetState();
|
||||
|
||||
/* When !asServer don't make changes if server is running.
|
||||
* This is because changes would have already been made on
|
||||
* the server side and doing so again would result in duplicates
|
||||
* and potentially overwrite data not yet sent. */
|
||||
bool asClientAndHost = (!asServer && base.NetworkManager.IsServer);
|
||||
if (!asClientAndHost)
|
||||
Component.enabled = nextValue;
|
||||
|
||||
OnChange?.Invoke(Component, prevValue, nextValue, asServer);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Return the serialized type.
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public object GetSerializedType() => typeof(bool);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce7cdae4a8f3d914fa9141b4bd760faa
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,43 @@
|
||||
using FishNet.Object;
|
||||
using FishNet.Object.Synchronizing;
|
||||
using UnityEngine;
|
||||
|
||||
namespace FishNet.Example.ComponentStateSync
|
||||
{
|
||||
|
||||
public class ComponentSyncStateBehaviour : NetworkBehaviour
|
||||
{
|
||||
/// <summary>
|
||||
/// Using my custom SyncType for Structy.
|
||||
/// </summary>
|
||||
[SyncObject]
|
||||
private readonly ComponentStateSync<AMonoScript> _syncScript = new ComponentStateSync<AMonoScript>();
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
AMonoScript ams = GetComponent<AMonoScript>();
|
||||
//Initialize with the component of your choice.
|
||||
_syncScript.Initialize(ams);
|
||||
//Optionally listen for changes.
|
||||
_syncScript.OnChange += _syncScript_OnChange;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called when enabled state changes for SyncScript.
|
||||
/// </summary>
|
||||
private void _syncScript_OnChange(AMonoScript component, bool prevState, bool nextState, bool asServer)
|
||||
{
|
||||
Debug.Log($"Change received on {component.GetType().Name}. New value is {nextState}. Received asServer {asServer}.");
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
//Every so often flip the state of the component.
|
||||
if (base.IsServer && Time.frameCount % 200 == 0)
|
||||
_syncScript.Enabled = !_syncScript.Enabled;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a7327b94eff9c7d4aa876aa54ca6b439
|
||||
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
Reference in New Issue
Block a user