diff --git a/Assets/DC/地形/安徽苏州.prefab b/Assets/DC/地形/安徽苏州.prefab new file mode 100644 index 00000000..23f0af3a --- /dev/null +++ b/Assets/DC/地形/安徽苏州.prefab @@ -0,0 +1,351 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &616688178513851202 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 932119738183159764} + - component: {fileID: 7326694442604138514} + - component: {fileID: 2147988866276981564} + - component: {fileID: 4856538540538549100} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &932119738183159764 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616688178513851202} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 1.6103896} + m_LocalScale: {x: 1, y: 1, z: 1.5974027} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4666156273386392709} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7326694442604138514 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616688178513851202} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &2147988866276981564 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616688178513851202} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &4856538540538549100 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 616688178513851202} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &724252726936952539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3714827713392600281} + m_Layer: 0 + m_Name: "\u5B89\u5FBD\u82CF\u5DDE" + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3714827713392600281 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 724252726936952539} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} + m_LocalPosition: {x: -3.704, y: -0.5, z: 1.85} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4666156273386392709} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 90, z: 0} +--- !u!1 &7975283993973379945 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 72832042947355210} + - component: {fileID: 8159567502049976636} + - component: {fileID: 7428044850780860213} + - component: {fileID: 2847486358990787404} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &72832042947355210 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7975283993973379945} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.13513514, y: 0, z: 0.65584415} + m_LocalScale: {x: 0.7297298, y: 1, z: 0.31168833} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 4666156273386392709} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &8159567502049976636 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7975283993973379945} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7428044850780860213 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7975283993973379945} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &2847486358990787404 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7975283993973379945} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &8134991575396817661 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4666156273386392709} + - component: {fileID: 6866317245644399425} + - component: {fileID: 1831803231171388633} + - component: {fileID: 6043315326034838932} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4666156273386392709 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8134991575396817661} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3.7, y: 1, z: 3.85} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 72832042947355210} + - {fileID: 932119738183159764} + m_Father: {fileID: 3714827713392600281} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6866317245644399425 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8134991575396817661} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1831803231171388633 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8134991575396817661} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!65 &6043315326034838932 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8134991575396817661} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/DC/地形/安徽苏州.prefab.meta b/Assets/DC/地形/安徽苏州.prefab.meta new file mode 100644 index 00000000..a0911fbf --- /dev/null +++ b/Assets/DC/地形/安徽苏州.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 23d92bcafd23cd84c80d578f742aa637 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Magic_Spline.meta b/Assets/Magic_Spline.meta new file mode 100644 index 00000000..bb30ba2b --- /dev/null +++ b/Assets/Magic_Spline.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1bf5d6cbffb27984abed6ca5fd38a4d1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Magic_Spline/Texture.meta b/Assets/Magic_Spline/Texture.meta new file mode 100644 index 00000000..b0938861 --- /dev/null +++ b/Assets/Magic_Spline/Texture.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7ecf9012c86ef24c8e7ce87f35ba420 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Magic_Spline/Texture/FX_Arrow_7_00006.png b/Assets/Magic_Spline/Texture/FX_Arrow_7_00006.png new file mode 100644 index 00000000..c30963c6 Binary files /dev/null and b/Assets/Magic_Spline/Texture/FX_Arrow_7_00006.png differ diff --git a/Assets/Magic_Spline/Texture/FX_Arrow_7_00006.png.meta b/Assets/Magic_Spline/Texture/FX_Arrow_7_00006.png.meta new file mode 100644 index 00000000..a2561c49 --- /dev/null +++ b/Assets/Magic_Spline/Texture/FX_Arrow_7_00006.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: e6f1be8867d4eb246825875f8ab19c1e +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: 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: 2 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + 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 + - serializedVersion: 3 + buildTarget: Windows Store Apps + 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: iPhone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Piloto Studio/Scripts/Rotator.cs b/Assets/Piloto Studio/Scripts/Rotator.cs index 94d6bc5c..8cd5863c 100644 --- a/Assets/Piloto Studio/Scripts/Rotator.cs +++ b/Assets/Piloto Studio/Scripts/Rotator.cs @@ -1,31 +1,21 @@ using System.Collections; using UnityEngine; -namespace PilotoStudio + +public class Rotator : MonoBehaviour { - public class Rotator : MonoBehaviour - { - public float x = 0f; - public float y = 0f; - public float z = 0f; - - public bool useGlobal; - - - - private void Update() - { - if (!useGlobal) - { - this.transform.Rotate(new Vector3(x, y, z) * Time.deltaTime); - - } - else - { - this.transform.Rotate(new Vector3(x, y, z) * Time.deltaTime, Space.Self); - } - - - } - + public float x = 0f; + public float y = 0f; + public float z = 0f; + void OnEnable() + { + InvokeRepeating("Rotate", 0f, 0.0167f); } -} \ No newline at end of file + void OnDisable() + { + CancelInvoke(); + } + void Rotate() + { + this.transform.localEulerAngles += new Vector3(x,y,z); + } +} diff --git a/Assets/_MrCs/Prefabs/GameManager.prefab b/Assets/_MrCs/Prefabs/GameManager.prefab index b4e023a3..80974426 100644 --- a/Assets/_MrCs/Prefabs/GameManager.prefab +++ b/Assets/_MrCs/Prefabs/GameManager.prefab @@ -95,3 +95,5 @@ MonoBehaviour: allPlayers: [] settleData: gameState: 0 + GuideArrowPre: {fileID: 718552219040796497, guid: 1090ff9efb8eaa94cbdc6dfa4042d3b7, + type: 3} diff --git a/Assets/_MrCs/Scenes/Anhui_Suzhou_Yueshan_Guchengshangyejie_2.unity b/Assets/_MrCs/Scenes/Anhui_Suzhou_Yueshan_Guchengshangyejie_2.unity index 5e9f4903..3cf5cb03 100644 --- a/Assets/_MrCs/Scenes/Anhui_Suzhou_Yueshan_Guchengshangyejie_2.unity +++ b/Assets/_MrCs/Scenes/Anhui_Suzhou_Yueshan_Guchengshangyejie_2.unity @@ -355,32 +355,32 @@ PrefabInstance: - target: {fileID: 3639326941666163144, guid: 7d8cddd7c801d874ea3f8f8d9829e3f4, type: 3} propertyPath: m_LocalScale.x - value: 23.627214 + value: 19.241531 objectReference: {fileID: 0} - target: {fileID: 3639326941666163144, guid: 7d8cddd7c801d874ea3f8f8d9829e3f4, type: 3} propertyPath: m_LocalScale.y - value: 19.655718 + value: 16.007223 objectReference: {fileID: 0} - target: {fileID: 3639326941666163144, guid: 7d8cddd7c801d874ea3f8f8d9829e3f4, type: 3} propertyPath: m_LocalScale.z - value: 23.627214 + value: 19.241531 objectReference: {fileID: 0} - target: {fileID: 3639326941666163144, guid: 7d8cddd7c801d874ea3f8f8d9829e3f4, type: 3} propertyPath: m_LocalPosition.x - value: -4.11 + value: -2.94 objectReference: {fileID: 0} - target: {fileID: 3639326941666163144, guid: 7d8cddd7c801d874ea3f8f8d9829e3f4, type: 3} propertyPath: m_LocalPosition.y - value: 12.4 + value: 10.55 objectReference: {fileID: 0} - target: {fileID: 3639326941666163144, guid: 7d8cddd7c801d874ea3f8f8d9829e3f4, type: 3} propertyPath: m_LocalPosition.z - value: 0.14 + value: -5.92 objectReference: {fileID: 0} - target: {fileID: 3639326941666163144, guid: 7d8cddd7c801d874ea3f8f8d9829e3f4, type: 3} @@ -635,32 +635,32 @@ PrefabInstance: - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, type: 3} propertyPath: m_LocalScale.x - value: 2.5 + value: 2.03595 objectReference: {fileID: 0} - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, type: 3} propertyPath: m_LocalScale.y - value: 2.5 + value: 2.03595 objectReference: {fileID: 0} - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, type: 3} propertyPath: m_LocalScale.z - value: 2.5 + value: 2.03595 objectReference: {fileID: 0} - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, type: 3} propertyPath: m_LocalPosition.x - value: -1.63 - objectReference: {fileID: 0} - - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, - type: 3} - propertyPath: m_LocalPosition.y value: -0.9 objectReference: {fileID: 0} + - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.28 + objectReference: {fileID: 0} - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, type: 3} propertyPath: m_LocalPosition.z - value: 2.44 + value: -4.05 objectReference: {fileID: 0} - target: {fileID: 3818840206969601579, guid: 7e6a9da745e339947a72f442a81902cf, type: 3} @@ -1665,32 +1665,32 @@ PrefabInstance: - target: {fileID: 125419306367060809, guid: 090339eca154b524aaf54fec0e384750, type: 3} propertyPath: m_LocalScale.x - value: 18.983997 + value: 15.460188 objectReference: {fileID: 0} - target: {fileID: 125419306367060809, guid: 090339eca154b524aaf54fec0e384750, type: 3} propertyPath: m_LocalScale.y - value: 18.983997 + value: 15.460188 objectReference: {fileID: 0} - target: {fileID: 125419306367060809, guid: 090339eca154b524aaf54fec0e384750, type: 3} propertyPath: m_LocalScale.z - value: 18.983997 + value: 15.460188 objectReference: {fileID: 0} - target: {fileID: 125419306367060809, guid: 090339eca154b524aaf54fec0e384750, type: 3} propertyPath: m_LocalPosition.x - value: -0.445 + value: 0.08 objectReference: {fileID: 0} - target: {fileID: 125419306367060809, guid: 090339eca154b524aaf54fec0e384750, type: 3} propertyPath: m_LocalPosition.y - value: 15.4 + value: 12.99 objectReference: {fileID: 0} - target: {fileID: 125419306367060809, guid: 090339eca154b524aaf54fec0e384750, type: 3} propertyPath: m_LocalPosition.z - value: 1.1040003 + value: -5.11 objectReference: {fileID: 0} - target: {fileID: 125419306367060809, guid: 090339eca154b524aaf54fec0e384750, type: 3} @@ -1778,14 +1778,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 121847464} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: -2.1499999, y: 0, z: -5.54} + m_LocalRotation: {x: -0, y: 0.7119563, z: -0, w: 0.7022239} + m_LocalPosition: {x: 6.024127, y: 0, z: 1.1876483} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1398400047} m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 90.789, z: 0} --- !u!1 &123598689 GameObject: m_ObjectHideFlags: 0 @@ -7513,32 +7513,32 @@ PrefabInstance: - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalScale.x - value: 12.581999 + value: 10.246528 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalScale.y - value: 12.582 + value: 10.246529 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalScale.z - value: 12.582 + value: 10.246529 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalPosition.x - value: 0.20999996 + value: 0.57 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalPosition.y - value: 1.1 + value: 1.35 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalPosition.z - value: 4.7399993 + value: -2.18 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} @@ -7707,32 +7707,32 @@ PrefabInstance: - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.x - value: 10.020991 + value: 8.160894 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.y - value: 10.020991 + value: 8.160894 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.z - value: 10.020991 + value: 8.160894 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.x - value: -1.1099999 + value: -0.49 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.y - value: 1.1 + value: 1.35 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.z - value: 5.39 + value: -1.69 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} @@ -8255,110 +8255,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 217159734} m_PrefabAsset: {fileID: 0} ---- !u!1001 &225589527 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1836419949} - m_Modifications: - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalScale.x - value: 2.6521602 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalScale.y - value: 2.6521602 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalScale.z - value: 2.6521602 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalPosition.x - value: -2.49 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalPosition.y - value: -0.0999999 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalPosition.z - value: -15.22 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalRotation.w - value: 0.96021086 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalRotation.y - value: 0.27927598 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 32.434 - objectReference: {fileID: 0} - - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7730785870802756418, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_Name - value: PA_Snowmanset1_Snowman1 (2) - objectReference: {fileID: 0} - - target: {fileID: 7730785870802756418, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_Layer - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 7730785870802756418, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - propertyPath: m_StaticEditorFlags - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: a3c207951c7b99144bc0ced09879c035, type: 3} ---- !u!4 &225589528 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, - type: 3} - m_PrefabInstance: {fileID: 225589527} - m_PrefabAsset: {fileID: 0} --- !u!1001 &256835918 PrefabInstance: m_ObjectHideFlags: 0 @@ -8613,7 +8509,7 @@ Transform: m_GameObject: {fileID: 295902225} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.95, y: 10, z: -2.68} + m_LocalPosition: {x: -2.79, y: 10, z: -2.89} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -8739,32 +8635,32 @@ PrefabInstance: - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalScale.x - value: 19.889725 + value: 16.197794 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalScale.y - value: 19.88972 + value: 16.19779 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalScale.z - value: 19.889725 + value: 16.197794 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalPosition.x - value: -4.79 + value: -3.51 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalPosition.y - value: 9.6 + value: 8.27 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalPosition.z - value: 4.41 + value: -2.42 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} @@ -8955,32 +8851,32 @@ PrefabInstance: - target: {fileID: 538094060322444922, guid: 864a19b01edd6c249a37f1bb036fdc39, type: 3} propertyPath: m_LocalScale.x - value: 21.848843 + value: 17.79326 objectReference: {fileID: 0} - target: {fileID: 538094060322444922, guid: 864a19b01edd6c249a37f1bb036fdc39, type: 3} propertyPath: m_LocalScale.y - value: 21.848843 + value: 17.79326 objectReference: {fileID: 0} - target: {fileID: 538094060322444922, guid: 864a19b01edd6c249a37f1bb036fdc39, type: 3} propertyPath: m_LocalScale.z - value: 21.848843 + value: 17.79326 objectReference: {fileID: 0} - target: {fileID: 538094060322444922, guid: 864a19b01edd6c249a37f1bb036fdc39, type: 3} propertyPath: m_LocalPosition.x - value: 1.84 + value: 1.95 objectReference: {fileID: 0} - target: {fileID: 538094060322444922, guid: 864a19b01edd6c249a37f1bb036fdc39, type: 3} propertyPath: m_LocalPosition.y - value: 9.7 + value: 8.35 objectReference: {fileID: 0} - target: {fileID: 538094060322444922, guid: 864a19b01edd6c249a37f1bb036fdc39, type: 3} propertyPath: m_LocalPosition.z - value: 4.05 + value: -2.75 objectReference: {fileID: 0} - target: {fileID: 538094060322444922, guid: 864a19b01edd6c249a37f1bb036fdc39, type: 3} @@ -9080,32 +8976,32 @@ PrefabInstance: - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalScale.x - value: 12.248 + value: 9.974526 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalScale.y - value: 12.247999 + value: 9.974525 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalScale.z - value: 12.247998 + value: 9.9745245 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalPosition.x - value: 2.34 + value: 2.36 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalPosition.y - value: 5.3 + value: 4.77 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} propertyPath: m_LocalPosition.z - value: 6.85 + value: -0.47 objectReference: {fileID: 0} - target: {fileID: 7793593600290841316, guid: 8ec52b2b76785c84cb412292a8623cd3, type: 3} @@ -9546,8 +9442,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 389453261} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalRotation: {x: -0, y: -0.7022239, z: -0, w: 0.7119563} + m_LocalPosition: {x: 0.5142432, y: 0, z: 3.4136863} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -9557,7 +9453,7 @@ Transform: - {fileID: 423491702} - {fileID: 1680394496} m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: -89.211, z: 0} --- !u!1 &423491701 GameObject: m_ObjectHideFlags: 0 @@ -9723,7 +9619,7 @@ PrefabInstance: - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} propertyPath: m_LocalPosition.x - value: 1.18 + value: 3.35 objectReference: {fileID: 0} - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} @@ -9733,7 +9629,7 @@ PrefabInstance: - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} propertyPath: m_LocalPosition.z - value: -14.39 + value: -14.01 objectReference: {fileID: 0} - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} @@ -10638,7 +10534,7 @@ Transform: m_GameObject: {fileID: 479164224} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.23, y: 0.1, z: 1.79} + m_LocalPosition: {x: -1.45, y: 0.1, z: 4.13} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -10669,7 +10565,7 @@ Transform: m_GameObject: {fileID: 484139990} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -2.1, y: 10, z: 4.25} + m_LocalPosition: {x: -2.85, y: 10, z: 3.85} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -10738,20 +10634,35 @@ PrefabInstance: propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} + - target: {fileID: 4311710497124396249, guid: c2966292859fa424391afa0fbf2d506a, + type: 3} + propertyPath: m_LocalScale.x + value: 0.81438 + objectReference: {fileID: 0} + - target: {fileID: 4311710497124396249, guid: c2966292859fa424391afa0fbf2d506a, + type: 3} + propertyPath: m_LocalScale.y + value: 0.81438 + objectReference: {fileID: 0} + - target: {fileID: 4311710497124396249, guid: c2966292859fa424391afa0fbf2d506a, + type: 3} + propertyPath: m_LocalScale.z + value: 0.81438 + objectReference: {fileID: 0} - target: {fileID: 4311710497124396249, guid: c2966292859fa424391afa0fbf2d506a, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 0.4 objectReference: {fileID: 0} - target: {fileID: 4311710497124396249, guid: c2966292859fa424391afa0fbf2d506a, type: 3} propertyPath: m_LocalPosition.y - value: 18.8 + value: 15.76 objectReference: {fileID: 0} - target: {fileID: 4311710497124396249, guid: c2966292859fa424391afa0fbf2d506a, type: 3} propertyPath: m_LocalPosition.z - value: 0 + value: -6 objectReference: {fileID: 0} - target: {fileID: 4311710497124396249, guid: c2966292859fa424391afa0fbf2d506a, type: 3} @@ -11882,32 +11793,32 @@ PrefabInstance: - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalScale.x - value: 12.174629 + value: 9.914774 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalScale.y - value: 12.17463 + value: 9.914775 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalScale.z - value: 12.17463 + value: 9.914775 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalPosition.x - value: -0.13000001 + value: 0.32 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalPosition.y - value: 1.1 + value: 1.35 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} propertyPath: m_LocalPosition.z - value: 5.9599996 + value: -1.2 objectReference: {fileID: 0} - target: {fileID: 2647004936851811644, guid: 4e9cfe99036e86d4bbfef7790545621f, type: 3} @@ -12184,14 +12095,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 605555871} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: -1.2499999, y: 0, z: 0.8199997} + m_LocalRotation: {x: -0, y: 0.7119563, z: -0, w: 0.7022239} + m_LocalPosition: {x: -0.32288092, y: 0, z: 2.1750896} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1836419949} m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 90.789, z: 0} --- !u!1 &616104601 GameObject: m_ObjectHideFlags: 0 @@ -13867,7 +13778,7 @@ MonoBehaviour: IncludeChildColliders: 0 RuntimeFollower: {fileID: 0} colliderMaxDistance: 100 - lastTimeMaxDistanceCalced: 639001983249245345 + lastTimeMaxDistanceCalced: 639005345020453366 --- !u!1 &679496949 GameObject: m_ObjectHideFlags: 0 @@ -19523,32 +19434,32 @@ PrefabInstance: - target: {fileID: 3495568849372645918, guid: e39da2f1dcd223143b2be0b59624be2f, type: 3} propertyPath: m_LocalScale.x - value: 13.895 + value: 11.31581 objectReference: {fileID: 0} - target: {fileID: 3495568849372645918, guid: e39da2f1dcd223143b2be0b59624be2f, type: 3} propertyPath: m_LocalScale.y - value: 13.895002 + value: 11.315812 objectReference: {fileID: 0} - target: {fileID: 3495568849372645918, guid: e39da2f1dcd223143b2be0b59624be2f, type: 3} propertyPath: m_LocalScale.z - value: 13.895 + value: 11.31581 objectReference: {fileID: 0} - target: {fileID: 3495568849372645918, guid: e39da2f1dcd223143b2be0b59624be2f, type: 3} propertyPath: m_LocalPosition.x - value: -4.41 + value: -3.18 objectReference: {fileID: 0} - target: {fileID: 3495568849372645918, guid: e39da2f1dcd223143b2be0b59624be2f, type: 3} propertyPath: m_LocalPosition.y - value: 11.1 + value: 9.49 objectReference: {fileID: 0} - target: {fileID: 3495568849372645918, guid: e39da2f1dcd223143b2be0b59624be2f, type: 3} propertyPath: m_LocalPosition.z - value: 3.78 + value: -2.99 objectReference: {fileID: 0} - target: {fileID: 3495568849372645918, guid: e39da2f1dcd223143b2be0b59624be2f, type: 3} @@ -20305,38 +20216,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 828675204} m_PrefabAsset: {fileID: 0} ---- !u!1 &847876771 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 847876772} - m_Layer: 0 - m_Name: GameObject - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &847876772 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 847876771} - serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.85, y: -0.5, z: -3.675} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1736867292} - m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &855678691 GameObject: m_ObjectHideFlags: 0 @@ -20362,7 +20241,7 @@ Transform: m_GameObject: {fileID: 855678691} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.26, y: 0.1, z: -2.18} + m_LocalPosition: {x: -1.4, y: 0.1, z: -2.51} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -22846,111 +22725,6 @@ AudioSource: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 ---- !u!1 &1035588944 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1035588945} - - component: {fileID: 1035588948} - - component: {fileID: 1035588947} - - component: {fileID: 1035588946} - m_Layer: 0 - m_Name: Cube (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1035588945 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1035588944} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.13513514, y: 0, z: 0.65584415} - m_LocalScale: {x: 0.7297298, y: 1, z: 0.31168833} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1736867292} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!65 &1035588946 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1035588944} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1035588947 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1035588944} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1035588948 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1035588944} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!43 &1046167498 Mesh: m_ObjectHideFlags: 0 @@ -23649,32 +23423,32 @@ PrefabInstance: - target: {fileID: 8714341306180131613, guid: 68a2b4ae87876a241a4d65d9032d14fd, type: 3} propertyPath: m_LocalScale.x - value: 19.471258 + value: 15.857003 objectReference: {fileID: 0} - target: {fileID: 8714341306180131613, guid: 68a2b4ae87876a241a4d65d9032d14fd, type: 3} propertyPath: m_LocalScale.y - value: 19.471256 + value: 15.857001 objectReference: {fileID: 0} - target: {fileID: 8714341306180131613, guid: 68a2b4ae87876a241a4d65d9032d14fd, type: 3} propertyPath: m_LocalScale.z - value: 19.471256 + value: 15.857001 objectReference: {fileID: 0} - target: {fileID: 8714341306180131613, guid: 68a2b4ae87876a241a4d65d9032d14fd, type: 3} propertyPath: m_LocalPosition.x - value: -1.62 + value: -0.9 objectReference: {fileID: 0} - target: {fileID: 8714341306180131613, guid: 68a2b4ae87876a241a4d65d9032d14fd, type: 3} propertyPath: m_LocalPosition.y - value: 9.7 + value: 8.35 objectReference: {fileID: 0} - target: {fileID: 8714341306180131613, guid: 68a2b4ae87876a241a4d65d9032d14fd, type: 3} propertyPath: m_LocalPosition.z - value: 6.17 + value: -1.04 objectReference: {fileID: 0} - target: {fileID: 8714341306180131613, guid: 68a2b4ae87876a241a4d65d9032d14fd, type: 3} @@ -26540,32 +26314,32 @@ PrefabInstance: - target: {fileID: 5105620508623565104, guid: 53340baac97bd44419dffef1333ff04c, type: 3} propertyPath: m_LocalScale.x - value: 34.469036 + value: 28.070892 objectReference: {fileID: 0} - target: {fileID: 5105620508623565104, guid: 53340baac97bd44419dffef1333ff04c, type: 3} propertyPath: m_LocalScale.y - value: 34.469032 + value: 28.07089 objectReference: {fileID: 0} - target: {fileID: 5105620508623565104, guid: 53340baac97bd44419dffef1333ff04c, type: 3} propertyPath: m_LocalScale.z - value: 34.469032 + value: 28.07089 objectReference: {fileID: 0} - target: {fileID: 5105620508623565104, guid: 53340baac97bd44419dffef1333ff04c, type: 3} propertyPath: m_LocalPosition.x - value: -1.28 + value: -0.66 objectReference: {fileID: 0} - target: {fileID: 5105620508623565104, guid: 53340baac97bd44419dffef1333ff04c, type: 3} propertyPath: m_LocalPosition.y - value: 9.8 + value: 8.43 objectReference: {fileID: 0} - target: {fileID: 5105620508623565104, guid: 53340baac97bd44419dffef1333ff04c, type: 3} propertyPath: m_LocalPosition.z - value: -1.2 + value: -6.98 objectReference: {fileID: 0} - target: {fileID: 5105620508623565104, guid: 53340baac97bd44419dffef1333ff04c, type: 3} @@ -27413,8 +27187,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1398400046} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -1, z: -0, w: 0} - m_LocalPosition: {x: 0, y: -10, z: 0} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.02, y: -10, z: -11.75} m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} m_ConstrainProportionsScale: 1 m_Children: @@ -28452,6 +28226,79 @@ Transform: - {fileID: 1866533068156761174} m_Father: {fileID: 8117735096544373184} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1550229603 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 724252726936952539, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_Name + value: "\u5B89\u5FBD\u82CF\u5DDE" + objectReference: {fileID: 0} + - target: {fileID: 724252726936952539, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalPosition.x + value: -3.704 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.5 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalPosition.z + value: 1.85 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3714827713392600281, guid: 23d92bcafd23cd84c80d578f742aa637, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 23d92bcafd23cd84c80d578f742aa637, type: 3} --- !u!1 &1553261575 GameObject: m_ObjectHideFlags: 0 @@ -28681,7 +28528,7 @@ PrefabInstance: - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} propertyPath: m_LocalPosition.x - value: -5.61 + value: -3.44 objectReference: {fileID: 0} - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} @@ -28691,7 +28538,7 @@ PrefabInstance: - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} propertyPath: m_LocalPosition.z - value: -12.3 + value: -11.92 objectReference: {fileID: 0} - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, type: 3} @@ -29258,32 +29105,32 @@ PrefabInstance: - target: {fileID: 8907620366790591738, guid: 3842e23a76e877f4481c70913f6603cb, type: 3} propertyPath: m_LocalScale.x - value: 10.737243 + value: 8.744196 objectReference: {fileID: 0} - target: {fileID: 8907620366790591738, guid: 3842e23a76e877f4481c70913f6603cb, type: 3} propertyPath: m_LocalScale.y - value: 10.737244 + value: 8.744196 objectReference: {fileID: 0} - target: {fileID: 8907620366790591738, guid: 3842e23a76e877f4481c70913f6603cb, type: 3} propertyPath: m_LocalScale.z - value: 10.737243 + value: 8.744196 objectReference: {fileID: 0} - target: {fileID: 8907620366790591738, guid: 3842e23a76e877f4481c70913f6603cb, type: 3} propertyPath: m_LocalPosition.x - value: -4.86 + value: -3.51 objectReference: {fileID: 0} - target: {fileID: 8907620366790591738, guid: 3842e23a76e877f4481c70913f6603cb, type: 3} propertyPath: m_LocalPosition.y - value: 8.7 + value: 7.54 objectReference: {fileID: 0} - target: {fileID: 8907620366790591738, guid: 3842e23a76e877f4481c70913f6603cb, type: 3} propertyPath: m_LocalPosition.z - value: 1 + value: -5.19 objectReference: {fileID: 0} - target: {fileID: 8907620366790591738, guid: 3842e23a76e877f4481c70913f6603cb, type: 3} @@ -29575,6 +29422,110 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1689610350} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1696982461 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1836419949} + m_Modifications: + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalScale.x + value: 1.5799985 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalScale.y + value: 1.5799983 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalScale.z + value: 1.5799985 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalPosition.x + value: -4.92 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalPosition.y + value: -0.30000007 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalPosition.z + value: 9.73 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.96021086 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.27927598 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 32.434 + objectReference: {fileID: 0} + - target: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7730785870802756418, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_Name + value: PA_Snowmanset1_Snowman1 (4) + objectReference: {fileID: 0} + - target: {fileID: 7730785870802756418, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_Layer + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 7730785870802756418, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a3c207951c7b99144bc0ced09879c035, type: 3} +--- !u!4 &1696982462 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 6918255146178640376, guid: a3c207951c7b99144bc0ced09879c035, + type: 3} + m_PrefabInstance: {fileID: 1696982461} + m_PrefabAsset: {fileID: 0} --- !u!1 &1699866146 GameObject: m_ObjectHideFlags: 0 @@ -30435,113 +30386,6 @@ MonoBehaviour: soundPlayedCustomEvent: willCleanUpDelegatesAfterStop: 1 frames: 178 ---- !u!1 &1736867288 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1736867292} - - component: {fileID: 1736867291} - - component: {fileID: 1736867290} - - component: {fileID: 1736867289} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!65 &1736867289 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1736867288} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &1736867290 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1736867288} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &1736867291 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1736867288} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &1736867292 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1736867288} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 3.7, y: 1, z: 3.85} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1035588945} - - {fileID: 2126343854} - m_Father: {fileID: 847876772} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1741382582 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8939424390248020864, guid: 1f2e65366c457014ba955a6d98eb94e5, @@ -32246,8 +32090,8 @@ Transform: - {fileID: 509271136} - {fileID: 665424074} - {fileID: 1595431352} - - {fileID: 225589528} - {fileID: 428171530} + - {fileID: 1696982462} - {fileID: 1639342552} - {fileID: 749144215} - {fileID: 31006774} @@ -33122,32 +32966,32 @@ PrefabInstance: - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.x - value: 11.307 + value: 9.208195 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.y - value: 11.306999 + value: 9.208194 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.z - value: 11.307 + value: 9.208195 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.x - value: -6.04 + value: -4.48 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.y - value: 5.3 + value: 4.77 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.z - value: 6.49 + value: -0.79 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} @@ -33829,32 +33673,32 @@ PrefabInstance: - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.x - value: 14.07495 + value: 11.4623575 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.y - value: 14.07495 + value: 11.4623575 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalScale.z - value: 14.07495 + value: 11.4623575 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.x - value: -4.03 + value: -2.85 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.y - value: 8.6 + value: 7.46 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} propertyPath: m_LocalPosition.z - value: -0.19 + value: -6.17 objectReference: {fileID: 0} - target: {fileID: 4831385450544635514, guid: 4fe71652b0dce254d9f3f5bf19ee354f, type: 3} @@ -34696,7 +34540,7 @@ Transform: m_GameObject: {fileID: 2125845074} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.3399999, y: 4.5, z: 1.6099997} + m_LocalPosition: {x: 0.47, y: 4.5, z: 1.6099997} m_LocalScale: {x: 4, y: 0.66622585, z: 3.9871316} m_ConstrainProportionsScale: 1 m_Children: @@ -34707,111 +34551,6 @@ Transform: - {fileID: 1716990657} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2126343853 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2126343854} - - component: {fileID: 2126343857} - - component: {fileID: 2126343856} - - component: {fileID: 2126343855} - m_Layer: 0 - m_Name: Cube (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2126343854 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2126343853} - serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 1.6103896} - m_LocalScale: {x: 1, y: 1, z: 1.5974027} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 1736867292} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!65 &2126343855 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2126343853} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 3 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2126343856 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2126343853} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!33 &2126343857 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2126343853} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!1001 &2130661288 PrefabInstance: m_ObjectHideFlags: 0 @@ -35839,14 +35578,14 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4316646790139336401} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 2.6, y: -4.032973, z: -0.25} + m_LocalRotation: {x: -0, y: 0.7119563, z: -0, w: 0.7022239} + m_LocalPosition: {x: 0.8, y: -4.032973, z: 6.01} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1549283049} m_Father: {fileID: 0} - m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} + m_LocalEulerAnglesHint: {x: 0, y: 90.789, z: 0} --- !u!4 &8202832935499462523 Transform: m_ObjectHideFlags: 0 @@ -35938,4 +35677,4 @@ SceneRoots: - {fileID: 1746743812} - {fileID: 389453262} - {fileID: 2125845078} - - {fileID: 847876772} + - {fileID: 1550229603} diff --git a/Assets/_MrCs/Scenes/Chongqing_Yuzhong_Hongyadong_Xiakexing.unity b/Assets/_MrCs/Scenes/Chongqing_Yuzhong_Hongyadong_Xiakexing.unity index 80da3709..c0f1a3ef 100644 --- a/Assets/_MrCs/Scenes/Chongqing_Yuzhong_Hongyadong_Xiakexing.unity +++ b/Assets/_MrCs/Scenes/Chongqing_Yuzhong_Hongyadong_Xiakexing.unity @@ -40335,7 +40335,7 @@ MonoBehaviour: IncludeChildColliders: 0 RuntimeFollower: {fileID: 0} colliderMaxDistance: 100 - lastTimeMaxDistanceCalced: 638999412584240770 + lastTimeMaxDistanceCalced: 639005412568278652 --- !u!1001 &1803484949 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/_MrCs/Scenes/Shandong_Langfang_QingzhouTaihuacheng.unity b/Assets/_MrCs/Scenes/Shandong_Langfang_QingzhouTaihuacheng.unity index e3b1be7e..4f944436 100644 --- a/Assets/_MrCs/Scenes/Shandong_Langfang_QingzhouTaihuacheng.unity +++ b/Assets/_MrCs/Scenes/Shandong_Langfang_QingzhouTaihuacheng.unity @@ -4520,7 +4520,7 @@ Transform: m_GameObject: {fileID: 187548279} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 6.81, y: 0.1, z: 3.49} + m_LocalPosition: {x: 7.49, y: 0.1, z: 1.56} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -4925,7 +4925,7 @@ Transform: m_GameObject: {fileID: 224353402} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 10.73, y: 10, z: -1.11} + m_LocalPosition: {x: 10.3, y: 10, z: -0.43} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -5410,7 +5410,7 @@ PrefabInstance: - target: {fileID: -8679921383154817045, guid: f98ab8abf74faba47915dfdc0f95f55b, type: 3} propertyPath: m_LocalPosition.x - value: 10.41 + value: 9.41 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: f98ab8abf74faba47915dfdc0f95f55b, type: 3} @@ -5420,7 +5420,7 @@ PrefabInstance: - target: {fileID: -8679921383154817045, guid: f98ab8abf74faba47915dfdc0f95f55b, type: 3} propertyPath: m_LocalPosition.z - value: 15.86 + value: 16.86 objectReference: {fileID: 0} - target: {fileID: -8679921383154817045, guid: f98ab8abf74faba47915dfdc0f95f55b, type: 3} @@ -13832,7 +13832,7 @@ Transform: m_GameObject: {fileID: 577434367} serializedVersion: 2 m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 14.77, y: -4.032973, z: 20.72} + m_LocalPosition: {x: 13.77, y: -4.032973, z: 21.72} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -16325,7 +16325,7 @@ Transform: m_GameObject: {fileID: 793806202} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 6.05, y: 10, z: -1.67} + m_LocalPosition: {x: 4.61, y: 10, z: -0.44} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -26710,7 +26710,7 @@ Transform: m_GameObject: {fileID: 1015762382} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 9.98, y: 10, z: 15.85} + m_LocalPosition: {x: 9.28, y: 10, z: 18.9} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -26990,7 +26990,7 @@ Transform: m_GameObject: {fileID: 1046302339} serializedVersion: 2 m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 10.92, y: 0, z: 21.79} + m_LocalPosition: {x: 9.92, y: 0, z: 22.79} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -30426,7 +30426,7 @@ Transform: m_GameObject: {fileID: 1249438065} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 6.77, y: 10, z: 15.21} + m_LocalPosition: {x: 4.62, y: 10, z: 18.66} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -41674,7 +41674,7 @@ MonoBehaviour: IncludeChildColliders: 0 RuntimeFollower: {fileID: 0} colliderMaxDistance: 100 - lastTimeMaxDistanceCalced: 638999455536035953 + lastTimeMaxDistanceCalced: 639005465778126621 --- !u!1001 &1803484949 PrefabInstance: m_ObjectHideFlags: 0 @@ -42266,7 +42266,7 @@ Transform: m_GameObject: {fileID: 1840121649} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 6.67, y: 0.1, z: 13.080001} + m_LocalPosition: {x: 6.67, y: 0.1, z: 13.94} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -44165,7 +44165,7 @@ Transform: m_GameObject: {fileID: 1958196495} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 8.300001, y: 4.5, z: 7.5} + m_LocalPosition: {x: 7.300001, y: 4.5, z: 8.5} m_LocalScale: {x: 4, y: 0.66622585, z: 3.9871316} m_ConstrainProportionsScale: 1 m_Children: @@ -44723,7 +44723,7 @@ Transform: m_GameObject: {fileID: 2033158670} serializedVersion: 2 m_LocalRotation: {x: 0, y: 1, z: 0, w: 0} - m_LocalPosition: {x: 10.02, y: 0, z: 15.43} + m_LocalPosition: {x: 9.02, y: 0, z: 16.43} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: diff --git a/Assets/_MrCs/Scripts/Manager/GameManager.cs b/Assets/_MrCs/Scripts/Manager/GameManager.cs index 6c591a8f..7e1a4951 100644 --- a/Assets/_MrCs/Scripts/Manager/GameManager.cs +++ b/Assets/_MrCs/Scripts/Manager/GameManager.cs @@ -37,7 +37,7 @@ public enum GameState /// Failur = 3, Settle, - Waiting= 5, + Waiting = 5, } public class GameManager : NetworkBehaviour @@ -54,12 +54,12 @@ public class GameManager : NetworkBehaviour public GameObject damageNumberPre; public GameObject redDamageNumberPre; - + // 怪物ui预制体 public GameObject EnemyUIPre; public GameObject roundPlaceDoorPre; - + #endregion #region 实例化后物体 @@ -68,13 +68,13 @@ public class GameManager : NetworkBehaviour public GameObject blueDoor; #endregion - + // json数据库 private JsonLiteDB DB; - + // 怪物信息集合 public Dictionary> EnemyInfos = new Dictionary>(); - + // 枪械信息集合 public Dictionary> GunInfos = new Dictionary>(); @@ -84,26 +84,26 @@ public class GameManager : NetworkBehaviour public Dictionary EnemyUIList = new Dictionary(); public Dictionary SettleInfos = new Dictionary(); - + public List allPlayers = new List(); - + // 游玩结束时间 [NonSerialized] [SyncVar] public long vistEnd = 0; - + [NonSerialized] [SyncVar] public long vistRoundEnd = 0; // 总游玩时长 - private int vistAllTime = (int)(60*15f); + private int vistAllTime = (int)(60 * 15f); [NonSerialized] [SyncVar] private int roundAllTime; - + [SyncVar] public string settleData = ""; - + [SyncVar] [NonSerialized] public int CurRoundIndex; @@ -117,15 +117,45 @@ public class GameManager : NetworkBehaviour [NonSerialized] [SyncVar] public int RedScore = 0; - + [NonSerialized] [SyncVar] public int RedRoundScore = 0; - + [NonSerialized] [SyncVar] public int BlueRoundScore = 0; + [Header("指引系统")] + public GameObject GuideArrowPre; // 指引箭头预制体 + private GameObject guideArrowInstanceRed; // 指向红门的指引箭头实例 + private GameObject guideArrowInstanceBlue; // 指向蓝门的指引箭头实例 + private GuideArrowPath guideArrowComponentRed; // 红门指引箭头组件 + private GuideArrowPath guideArrowComponentBlue; // 蓝门指引箭头组件 + private bool isGuideArrowActive = false; + + // 优化:使用协程更新路径,避免每帧计算 + private Coroutine pathUpdateCoroutine; + + // 优化:减少更新频率 + private float updatePathInterval = 0.5f; // 路径更新间隔(秒) + private float lastPathUpdateTime = 0f; + + // 优化:简化路径计算 + private Vector3 lastPlayerPosition = Vector3.zero; + private float updatePositionThreshold = 1.0f; // 玩家移动超过这个距离才更新路径 + private int pathSegments = 10; // 路径分段数(使用Lerp插值) + + // 指引系统目标位置 + private Vector3 guideTargetPositionRed = Vector3.zero; + private Vector3 guideTargetPositionBlue = Vector3.zero; + // 是否已初始化指引系统 + private bool isGuideInitialized = false; + // 是否已经同步门位置 + private bool isDoorPositionSynced = false; + // 调试用:强制显示指引 + public bool forceShowGuide = false; + void Awake() { Ins = this; @@ -133,6 +163,12 @@ public class GameManager : NetworkBehaviour void Start() { + // 延迟初始化指引系统,等待网络连接 + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + InitializeGuideArrow(); + }, 2f); + if (isClient) { UpdateConf(); @@ -140,7 +176,12 @@ public class GameManager : NetworkBehaviour if (isServer) { - CreateDoor(GameLocal.Ins.redDoorPos, GameLocal.Ins.blueDoorPos,GameLocal.Ins.startGameItemPos); + CreateDoor(GameLocal.Ins.redDoorPos, GameLocal.Ins.blueDoorPos, GameLocal.Ins.startGameItemPos); + + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + StartGuide(); + }, 2f); roundAllTime = vistAllTime / 3; } } @@ -149,30 +190,57 @@ public class GameManager : NetworkBehaviour /// 创建门 /// [Server] - public void CreateDoor(Transform redPos, Transform bluePos,Transform startGamePos) + public void CreateDoor(Transform redPos, Transform bluePos, Transform startGamePos) { SetGameState(GameState.Waiting); - if(!isServer) + if (!isServer) return; + //创建红色门 - redDoor = Instantiate(redDoorPre,redPos.position,Quaternion.identity); + redDoor = Instantiate(redDoorPre, redPos.position, Quaternion.identity); NetworkServer.Spawn(redDoor); - + //创建蓝色门 - blueDoor = Instantiate(blueDoorPre,bluePos.position,Quaternion.identity); + blueDoor = Instantiate(blueDoorPre, bluePos.position, Quaternion.identity); NetworkServer.Spawn(blueDoor); - - //创建开始球 - // GameObject gameStartObj = Instantiate(startGameItemPre,startGamePos.position,Quaternion.identity); - // gameStartObj.transform.eulerAngles = new Vector3(0f,180f,0f); - // NetworkServer.Spawn(gameStartObj); - - //测试枪械 - //GameLocal.Ins.self.GivePistol(); + + // 等待一帧确保物体同步,然后同步门位置 + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + // 同步门的位置给所有客户端 + RpcSyncDoorPosition(redPos.position, bluePos.position); + Debug.Log("服务器:门位置已同步到客户端"); + + // 服务器端也初始化指引 + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + StartGuide(); + }, 0.5f); + }, 0.5f); + } + + /// + /// 同步门的位置给所有客户端 + /// + [ClientRpc] + public void RpcSyncDoorPosition(Vector3 redDoorPos, Vector3 blueDoorPos) + { + // 客户端接收门的位置 + guideTargetPositionRed = redDoorPos; + guideTargetPositionBlue = blueDoorPos; + isDoorPositionSynced = true; + Debug.Log("客户端:收到门位置同步,红门: " + guideTargetPositionRed + ",蓝门: " + guideTargetPositionBlue); + + // 如果指引系统已经初始化,立即开始指引 + if (isGuideInitialized) + { + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + StartGuide(); + }, 0.3f); + } } - - [ClientRpc] public void RpcShowDamageNumber(float damage, Vector3 pos, bool isCritical) { @@ -184,12 +252,12 @@ public class GameManager : NetworkBehaviour if (dmg != null) { dmg.worldPos = pos; - dmg.damageValue = isCritical? damage*2 : damage; + dmg.damageValue = isCritical ? damage * 2 : damage; dmg.OnStartClient(); } Destroy(obj, 10f); } - + [Server] public void GameStart() { @@ -200,6 +268,10 @@ public class GameManager : NetworkBehaviour _curAirdropTime = _airdropTime; ChangeBgmRpc(1); StartAirDrop(); + + // 停止所有客户端的指引 + RpcStopAllGuide(); + // 延迟1s后给所有人发放武器 CoroutineTaskManager.Instance.WaitSecondTodo(() => { @@ -215,9 +287,9 @@ public class GameManager : NetworkBehaviour }, 1f); StartRoundTime(); } - + [TargetRpc] - public void ShowTeamUI(NetworkConnectionToClient conn,int teamId) + public void ShowTeamUI(NetworkConnectionToClient conn, int teamId) { EventDispatcher.TriggerEvent("ChangeTeam", teamId); } @@ -228,20 +300,20 @@ public class GameManager : NetworkBehaviour CurRoundIndex++; CoroutineTaskManager.Instance.WaitSecondTodo(() => { - if(gameState==GameState.Waiting) + if (gameState == GameState.Waiting) return; StopRound(); }, roundAllTime); } - + [Server] public void RegisterPlayer(Player p) { if (!allPlayers.Contains(p)) allPlayers.Add(p); } - - + + // ★ 玩家离开游戏时调用(在Player.OnStopServer里调用) [Server] public void UnRegisterPlayer(Player p) @@ -249,133 +321,138 @@ public class GameManager : NetworkBehaviour if (allPlayers.Contains(p)) allPlayers.Remove(p); } - + // ★ 游戏开始时调用 → 自动分配队伍 - [Server] + [Server] public void AutoAssignTeams() -{ - int redCount = 0; - int blueCount = 0; - - // 统计已选队伍玩家 - foreach (var p in allPlayers) { - if (p.teamType == TeamType.Red) redCount++; - else if (p.teamType == TeamType.Blue) blueCount++; - } + int redCount = 0; + int blueCount = 0; - int totalPlayers = allPlayers.Count; - - // ----------------------------- - // ★ 第一步:强制平衡队伍(如果人数>=2 且某队==0) - // ----------------------------- - if (totalPlayers >= 2) - { - if (redCount == 0 && blueCount > 0) + // 统计已选队伍玩家 + foreach (var p in allPlayers) { - // 需要从蓝队分一半人到红队 - int need = Mathf.Max(1, blueCount / 2); + if (p.teamType == TeamType.Red) redCount++; + else if (p.teamType == TeamType.Blue) blueCount++; + } - foreach (var p in allPlayers) + int totalPlayers = allPlayers.Count; + + // ----------------------------- + // ★ 第一步:强制平衡队伍(如果人数>=2 且某队==0) + // ----------------------------- + if (totalPlayers >= 2) + { + if (redCount == 0 && blueCount > 0) { - if (need <= 0) break; - if (p.teamType == TeamType.Blue) + // 需要从蓝队分一半人到红队 + int need = Mathf.Max(1, blueCount / 2); + + foreach (var p in allPlayers) { - p.teamType = TeamType.Red; - need--; - redCount++; - blueCount--; + if (need <= 0) break; + if (p.teamType == TeamType.Blue) + { + p.teamType = TeamType.Red; + need--; + redCount++; + blueCount--; + } + } + } + else if (blueCount == 0 && redCount > 0) + { + // 需要从红队分一半人到蓝队 + int need = Mathf.Max(1, redCount / 2); + + foreach (var p in allPlayers) + { + if (need <= 0) break; + if (p.teamType == TeamType.Red) + { + p.teamType = TeamType.Blue; + need--; + blueCount++; + redCount--; + } } } } - else if (blueCount == 0 && redCount > 0) - { - // 需要从红队分一半人到蓝队 - int need = Mathf.Max(1, redCount / 2); - - foreach (var p in allPlayers) - { - if (need <= 0) break; - if (p.teamType == TeamType.Red) - { - p.teamType = TeamType.Blue; - need--; - blueCount++; - redCount--; - } - } - } - } - // ----------------------------- - // ★ 第二步:给未分配队伍(NONE)的玩家自动分配 - // ----------------------------- - foreach (var p in allPlayers) - { - if (p.teamType != TeamType.None) - continue; + // ----------------------------- + // ★ 第二步:给未分配队伍(NONE)的玩家自动分配 + // ----------------------------- + foreach (var p in allPlayers) + { + if (p.teamType != TeamType.None) + continue; - if (redCount < blueCount) - { - p.teamType = TeamType.Red; - redCount++; - } - else if (blueCount < redCount) - { - p.teamType = TeamType.Blue; - blueCount++; - } - else - { - // 平局 → 随机 - if (Random.value > 0.5f) + if (redCount < blueCount) { p.teamType = TeamType.Red; redCount++; } - else + else if (blueCount < redCount) { p.teamType = TeamType.Blue; blueCount++; } - } + else + { + // 平局 → 随机 + if (Random.value > 0.5f) + { + p.teamType = TeamType.Red; + redCount++; + } + else + { + p.teamType = TeamType.Blue; + blueCount++; + } + } - // 给队伍分配武器 - GivePistol(p.index); + // 给队伍分配武器 + GivePistol(p.index); + } } -} [Server] public void CheckGameStart() { int curTeamIndex = 0; - bool isStartGame=false; + bool isStartGame = false; foreach (var player in allPlayers) { if (player.teamType != TeamType.None) curTeamIndex++; } - - isStartGame=curTeamIndex >= GameLocal.Ins.addPlayerIndex; + + isStartGame = curTeamIndex >= GameLocal.Ins.addPlayerIndex; if (isStartGame) { - if(gameState== GameState.Playing) + if (gameState == GameState.Playing) return; AutoAssignTeams(); gameState = GameState.Playing; BlueRoundScore = 0; RedRoundScore = 0; + + // 停止所有客户端的指引 + RpcStopAllGuide(); + NetworkServer.Destroy(redDoor); NetworkServer.Destroy(blueDoor); + RpcShowHUD(); MonoSingleton.Instance.WaitSecondTodo(() => { GameStart(); }, 3f, this); - + } - + } @@ -392,10 +469,10 @@ public class GameManager : NetworkBehaviour foreach (var item in NetworkServer.connections.Values) { Player player = item.identity.GetComponent(); - if (player != null&&player.index == index) + if (player != null && player.index == index) { - player.GivePistol(); - player.GiveArmor(); + player.GivePistol(); + player.GiveArmor(); } } } @@ -410,21 +487,6 @@ public class GameManager : NetworkBehaviour public void GameOver() { gameState = GameState.Settle; - // bool isBlue = GameLocal.Ins.self.teamType == TeamType.Blue; - // bool isWin; - // if (isBlue) - // { - // isWin = BlueScore > RedScore; - // } - // RpcShowWin(isBlue); - // if (blueScore >= redScore) - // { - // RpcShowWin(true); - // } - // else - // { - // RpcShowWin(false); - // } } [ClientRpc] @@ -442,28 +504,28 @@ public class GameManager : NetworkBehaviour [Server] public void CreateAirdropPlane(Vector3 startPos, Vector3 endPos) { - GameObject airdropPlane = Instantiate(AirdropPlanePre,startPos,quaternion.identity); + GameObject airdropPlane = Instantiate(AirdropPlanePre, startPos, quaternion.identity); NetworkServer.Spawn(airdropPlane); AirdropPlane airdropPlaneScript = airdropPlane.GetComponent(); airdropPlaneScript.OnSpawn(endPos); } [Server] - public void CreateAirDropItem(int id ,Vector3 startPos) + public void CreateAirDropItem(int id, Vector3 startPos) { - GameObject airdropItem = Instantiate(airdropItems[id],startPos,quaternion.identity); + GameObject airdropItem = Instantiate(airdropItems[id], startPos, quaternion.identity); NetworkServer.Spawn(airdropItem); } - + /// /// 痛击场上所有敌方单位 /// [Command(requiresAuthority = false)] public void DamageAllEnemy() { - + } - + /// /// 更新配置表 /// @@ -497,7 +559,7 @@ public class GameManager : NetworkBehaviour infoList.Add(info.Lvl, info); } } - + Debug.Log("游戏数值更新 -> complete"); } @@ -522,7 +584,7 @@ public class GameManager : NetworkBehaviour [ClientRpc] public void RpcShowHUD() { - HUDPanel.Show(); + HUDPanel.Show(); } [Server] @@ -541,7 +603,7 @@ public class GameManager : NetworkBehaviour } return res; } - + public string GetRoundLessTimeStr() { string res = ""; @@ -581,7 +643,7 @@ public class GameManager : NetworkBehaviour #endregion [TargetRpc] - public void PlaySound2DRPC(NetworkConnection target,string sound) + public void PlaySound2DRPC(NetworkConnection target, string sound) { MasterAudio.PlaySound(sound); } @@ -590,21 +652,21 @@ public class GameManager : NetworkBehaviour { foreach (var item in allPlayers) { - PlaySound2DRPC(item.connectionToClient,sound); + PlaySound2DRPC(item.connectionToClient, sound); } } - + [TargetRpc] - public void PlaySound3DRPC(NetworkConnection target,string sound,Transform pos) + public void PlaySound3DRPC(NetworkConnection target, string sound, Transform pos) { - MasterAudio.PlaySound3DAtTransform(sound,pos); + MasterAudio.PlaySound3DAtTransform(sound, pos); } - public void PlaySound3D(string sound,Transform target) + public void PlaySound3D(string sound, Transform target) { foreach (var item in allPlayers) { - PlaySound3DRPC(item.connectionToClient,sound,target); + PlaySound3DRPC(item.connectionToClient, sound, target); } } @@ -624,18 +686,18 @@ public class GameManager : NetworkBehaviour { _isStartAirdrop = false; } - + void Update() { - if (isServer&& gameState==GameState.Playing&&_isStartAirdrop) + if (isServer && gameState == GameState.Playing && _isStartAirdrop) { //服务器计算剩余时间并同步 //syncRemainingTime = GetLessTimeSeconds(); - _curAirdropTime+=Time.deltaTime; + _curAirdropTime += Time.deltaTime; if (_curAirdropTime >= _airdropTime) { int airdropPosId = Random.Range(0, 4); - int endAirdropPosId =0; + int endAirdropPosId = 0; if (airdropPosId == 0) endAirdropPosId = 1; if (airdropPosId == 1) @@ -644,7 +706,7 @@ public class GameManager : NetworkBehaviour endAirdropPosId = 3; if (airdropPosId == 3) endAirdropPosId = 2; - CreateAirdropPlane(GameLocal.Ins.startPlanePos[airdropPosId].position,GameLocal.Ins.startPlanePos[endAirdropPosId].position); + CreateAirdropPlane(GameLocal.Ins.startPlanePos[airdropPosId].position, GameLocal.Ins.startPlanePos[endAirdropPosId].position); _curAirdropTime = 0; StopAirDrop(); } @@ -657,17 +719,24 @@ public class GameManager : NetworkBehaviour StopRound(); } } + + // 调试:强制显示指引(测试用) + if (forceShowGuide && Input.GetKeyDown(KeyCode.G) && isGuideInitialized && !isGuideArrowActive) + { + Debug.Log("强制显示指引"); + StartGuide(); + } } [Server] public void StartRound() { gameState = GameState.Playing; - ChangeBgmRpc(CurRoundIndex+1); + ChangeBgmRpc(CurRoundIndex + 1); vistRoundEnd = (long)(DateTime.Now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds + roundAllTime; foreach (var item in allPlayers) { - item.HideInvincible(); + item.HideInvincible(); } StartRoundTime(); } @@ -677,15 +746,7 @@ public class GameManager : NetworkBehaviour { gameState = GameState.Waiting; ChangeBgmRpc(0); - //// ★★★ 修改:添加特殊地图规则检查 - //bool shouldEndGameImmediately = CheckIfShouldEndGameImmediately(); - //if (shouldEndGameImmediately) - //{ - // // ★★★ 新增:特定地图第一局结束后直接结算 - // gameState = GameState.Settle; - //} - // else if (CurRoundIndex >= 3) gameState = GameState.Settle; if (BlueRoundScore > RedRoundScore) @@ -696,15 +757,15 @@ public class GameManager : NetworkBehaviour { RedScore += 1; } - if (BlueRoundScore == RedRoundScore&& BlueRoundScore!=0&& RedRoundScore!=0) + if (BlueRoundScore == RedRoundScore && BlueRoundScore != 0 && RedRoundScore != 0) { RedScore += 1; BlueScore += 1; } foreach (var item in allPlayers) { - item.ClearGun(); - + item.ClearGun(); + } MonoSingleton.Instance.WaitSecondTodo(() => { @@ -713,17 +774,11 @@ public class GameManager : NetworkBehaviour RpcPlayerRoundEnd(item.connectionToClient); } }, 1f, this); - //// ★★★ 修改:如果游戏已经结束,直接进入结算 - //if (gameState == GameState.Settle) - //{ - // // ★★★ 新增:直接进入结算流程 - // RpcShowSettle(); - // return; - //} + CreateRoundPlaceDoorPre(); MonoSingleton.Instance.WaitSecondTodo(() => { - if(gameState==GameState.Settle) + if (gameState == GameState.Settle) return; BlueRoundScore = 0; RedRoundScore = 0; @@ -734,58 +789,52 @@ public class GameManager : NetworkBehaviour }, 10f, this); MonoSingleton.Instance.WaitSecondTodo(() => { - if(gameState==GameState.Settle) + if (gameState == GameState.Settle) return; StartRound(); }, 13f, this); } - //// ★★★ 新增:检查是否需要立即结束游戏的方法 - //[Server] - //private bool CheckIfShouldEndGameImmediately() - //{ - // // ★★★ 新增:重庆渝中洪崖洞侠客行十万地图,第一局结束后直接结算 - // return GameLocal.Ins.place == Place.Chongqing_Yuzhong_Hongyadong_Xiakexing_shiwan && CurRoundIndex >= 1; - //} + [TargetRpc] public void RpcPlayerRoundEnd(NetworkConnection target) { EventDispatcher.TriggerEvent("NewRoundStart", - CurRoundIndex==3? BlueScore:BlueRoundScore, - CurRoundIndex==3? RedScore:RedRoundScore, + CurRoundIndex == 3 ? BlueScore : BlueRoundScore, + CurRoundIndex == 3 ? RedScore : RedRoundScore, CurRoundIndex); } - + [TargetRpc] public void RpcPlayerWaitRoundEnd(NetworkConnection target) { GameLocal.Ins.RoundUI.SetActive(false); EventDispatcher.TriggerEvent("NewWaveStart"); } - + public Player GetPlayerByIndex(int index) { return allPlayers.FirstOrDefault(p => p.index == index); } - + #region 回合地图 [Server] public void CreateRoundPlaceDoorPre() { //创建吸收场地黑洞 - var roundPlaceDoor = Instantiate(roundPlaceDoorPre,GameLocal.Ins.roundPlaceDoorPos.position,Quaternion.identity); + var roundPlaceDoor = Instantiate(roundPlaceDoorPre, GameLocal.Ins.roundPlaceDoorPos.position, Quaternion.identity); roundPlaceDoor.transform.eulerAngles = GameLocal.Ins.roundPlaceDoorPos.eulerAngles; NetworkServer.Spawn(roundPlaceDoor); foreach (var player in allPlayers) { PlaceFly(player.connectionToClient, roundPlaceDoor.transform.position); } - + MonoSingleton.Instance.WaitSecondTodo(() => { if (roundPlaceDoor != null) NetworkServer.Destroy(roundPlaceDoor); - if(gameState==GameState.Settle) + if (gameState == GameState.Settle) return; // RPC:通知客户端执行地图升起动画 foreach (var player in allPlayers) @@ -809,7 +858,7 @@ public class GameManager : NetworkBehaviour GameLocal.Ins.AddObject(child, blackHolePos); } } - + [TargetRpc] public void RpcMapRise(NetworkConnection target) { @@ -817,8 +866,8 @@ public class GameManager : NetworkBehaviour } private IEnumerator MapRiseCoroutine() { - GameLocal.Ins.ShowPlace(CurRoundIndex+1); - GameObject newMap = GameLocal.Ins.CurPlace(CurRoundIndex+1); // 新地图预先放在场景里 + GameLocal.Ins.ShowPlace(CurRoundIndex + 1); + GameObject newMap = GameLocal.Ins.CurPlace(CurRoundIndex + 1); // 新地图预先放在场景里 Vector3 startPos = newMap.transform.position; Vector3 endPos = new Vector3(startPos.x, 0f, startPos.z); @@ -842,7 +891,7 @@ public class GameManager : NetworkBehaviour } #endregion - + #region 分数系统 @@ -852,7 +901,7 @@ public class GameManager : NetworkBehaviour /// public void AddRedScore(int score) { - RedRoundScore+=score; + RedRoundScore += score; } /// @@ -861,9 +910,375 @@ public class GameManager : NetworkBehaviour /// public void AddBlueScore(int score) { - BlueRoundScore+=score; + BlueRoundScore += score; } #endregion -} + #region 指引系统(优化版)- 双线版本,使用Vector3.Lerp + + /// + /// 初始化指引箭头(每个客户端独立) + /// + private void InitializeGuideArrow() + { + // 检查预制体是否存在 + if (GuideArrowPre == null) + { + Debug.LogError("GuideArrowPre 预制体未分配!"); + return; + } + + // 实例化两个指引箭头预制体(本地实例,不会网络同步) + guideArrowInstanceRed = Instantiate(GuideArrowPre); + guideArrowInstanceRed.name = "GuideArrow_Red"; + + guideArrowInstanceBlue = Instantiate(GuideArrowPre); + guideArrowInstanceBlue.name = "GuideArrow_Blue"; + + // 获取指引箭头组件 + guideArrowComponentRed = guideArrowInstanceRed.GetComponent(); + guideArrowComponentBlue = guideArrowInstanceBlue.GetComponent(); + + if (guideArrowComponentRed == null || guideArrowComponentBlue == null) + { + Debug.LogError("GuideArrowPre 预制体上没有找到 GuideArrowPath 组件!"); + if (guideArrowInstanceRed != null) Destroy(guideArrowInstanceRed); + if (guideArrowInstanceBlue != null) Destroy(guideArrowInstanceBlue); + guideArrowInstanceRed = null; + guideArrowInstanceBlue = null; + return; + } + + // 初始化玩家位置 + if (GameLocal.Ins.self != null) + { + lastPlayerPosition = GameLocal.Ins.self.transform.position; + } + + isGuideInitialized = true; + Debug.Log("指引系统初始化完成,创建了2个指引箭头,等待门位置同步..."); + + // 如果已经收到门位置同步,立即开始指引 + if (isDoorPositionSynced && guideTargetPositionRed != Vector3.zero && guideTargetPositionBlue != Vector3.zero) + { + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + StartGuide(); + }, 0.5f); + } + // 如果是客户端,尝试查找网络上的门 + else if (!isServer) + { + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + TryFindDoorsAndStartGuide(); + }, 1f); + } + } + + /// + /// 尝试查找门并开始指引(客户端使用) + /// + private void TryFindDoorsAndStartGuide() + { + if (isGuideInitialized && !isGuideArrowActive) + { + Vector3[] doorPositions = FindDoorPositions(); + if (doorPositions[0] != Vector3.zero && doorPositions[1] != Vector3.zero) + { + guideTargetPositionRed = doorPositions[0]; + guideTargetPositionBlue = doorPositions[1]; + StartGuide(); + } + else + { + Debug.Log("客户端:未找到两个门,等待门位置同步..."); + } + } + } + + /// + /// 查找门的位置(客户端使用)- 优化版,减少查找频率 + /// + private Vector3[] FindDoorPositions() + { + Vector3[] doorPositions = new Vector3[2] { Vector3.zero, Vector3.zero }; + + // 使用缓存的门对象,避免频繁查找 + if (redDoor != null && redDoor.activeInHierarchy) + { + doorPositions[0] = redDoor.transform.position; + } + else if (blueDoor != null && blueDoor.activeInHierarchy) + { + // 注意:这里需要区分红门和蓝门 + // 假设红门和蓝门都有对应的变量 + } + + // 如果没有缓存,则尝试查找 + if (doorPositions[0] == Vector3.zero) + { + GameObject redDoorObj = GameObject.FindWithTag("RedDoor"); + if (redDoorObj != null) doorPositions[0] = redDoorObj.transform.position; + } + + if (doorPositions[1] == Vector3.zero) + { + GameObject blueDoorObj = GameObject.FindWithTag("BlueDoor"); + if (blueDoorObj != null) doorPositions[1] = blueDoorObj.transform.position; + } + + // 备用查找方案 + if (doorPositions[0] == Vector3.zero || doorPositions[1] == Vector3.zero) + { + GameObject[] allDoors = GameObject.FindGameObjectsWithTag("Door"); + foreach (var door in allDoors) + { + if (door.name.Contains("Red") && doorPositions[0] == Vector3.zero) + { + doorPositions[0] = door.transform.position; + } + else if (door.name.Contains("Blue") && doorPositions[1] == Vector3.zero) + { + doorPositions[1] = door.transform.position; + } + } + } + + return doorPositions; + } + + /// + /// 开始指引(在创建门后调用) + /// + public void StartGuide() + { + if (!isGuideInitialized) + { + Debug.LogWarning("指引系统未初始化,无法开始指引"); + return; + } + + if (GameLocal.Ins.self == null) + { + Debug.LogWarning("玩家对象未找到,无法开始指引"); + return; + } + + // 获取门位置 + Vector3 doorPositionRed = guideTargetPositionRed; + Vector3 doorPositionBlue = guideTargetPositionBlue; + + if (doorPositionRed == Vector3.zero || doorPositionBlue == Vector3.zero) + { + Vector3[] doorPositions = FindDoorPositions(); + if (doorPositions[0] == Vector3.zero || doorPositions[1] == Vector3.zero) + { + Debug.LogWarning("未找到两个门位置,指引无法开始。"); + return; + } + else + { + guideTargetPositionRed = doorPositions[0]; + guideTargetPositionBlue = doorPositions[1]; + } + } + + Debug.Log("开始指引,红门位置: " + guideTargetPositionRed + + ",蓝门位置: " + guideTargetPositionBlue + + ",玩家位置: " + GameLocal.Ins.self.transform.position); + + // 记录初始位置 + lastPlayerPosition = GameLocal.Ins.self.transform.position; + + // 初始计算路径 + UpdateGuidePaths(); + + // 启动路径更新协程 + if (pathUpdateCoroutine != null) + { + StopCoroutine(pathUpdateCoroutine); + } + pathUpdateCoroutine = StartCoroutine(UpdatePathsCoroutine()); + + // 显示指引 + ShowGuideArrow(); + } + + /// + /// 路径更新协程 - 优化性能,减少更新频率 + /// + private IEnumerator UpdatePathsCoroutine() + { + while (isGuideArrowActive && isGuideInitialized) + { + // 检查时间间隔 + if (Time.time - lastPathUpdateTime >= updatePathInterval) + { + UpdateGuidePaths(); + lastPathUpdateTime = Time.time; + } + + // 等待下一帧 + yield return null; + } + } + + /// + /// 更新指引路径 - 使用Vector3.Lerp优化计算 + /// + private void UpdateGuidePaths() + { + if (!isGuideArrowActive || GameLocal.Ins.self == null || !isGuideInitialized) + return; + + // 获取玩家当前位置 + Vector3 currentPlayerPosition = GameLocal.Ins.self.transform.position; + + // 检查玩家是否移动了足够远的距离 + float distanceMoved = Vector3.Distance(currentPlayerPosition, lastPlayerPosition); + + // 如果移动距离小于阈值,且门位置未变化,则跳过更新 + if (distanceMoved < updatePositionThreshold) + { + return; + } + + // 更新玩家位置 + lastPlayerPosition = currentPlayerPosition; + + // 计算两条路径 + List pathToRed = CalculateSimplePath(currentPlayerPosition, guideTargetPositionRed); + List pathToBlue = CalculateSimplePath(currentPlayerPosition, guideTargetPositionBlue); + + // 设置路径 + if (pathToRed != null && pathToRed.Count > 1) + { + guideArrowComponentRed.SetPath(pathToRed); + } + + if (pathToBlue != null && pathToBlue.Count > 1) + { + guideArrowComponentBlue.SetPath(pathToBlue); + } + } + + /// + /// 计算简单路径 - 使用Vector3.Lerp插值 + /// + private List CalculateSimplePath(Vector3 start, Vector3 end) + { + if (start == Vector3.zero || end == Vector3.zero) + return null; + + List path = new List(); + + // 添加起点 + path.Add(start); + + // 使用Vector3.Lerp生成中间点 + for (int i = 1; i < pathSegments; i++) + { + float t = (float)i / pathSegments; + Vector3 point = Vector3.Lerp(start, end, t); + + // 轻微调整高度,形成自然曲线 + float height = Mathf.Sin(t * Mathf.PI) * 0.5f; + point.y += height; + + path.Add(point); + } + + // 添加终点 + path.Add(end); + + return path; + } + + /// + /// 显示指引箭头(本地调用) + /// + public void ShowGuideArrow() + { + if (guideArrowComponentRed != null && guideArrowComponentBlue != null && + GameLocal.Ins.self != null && isGuideInitialized) + { + guideArrowComponentRed.ShowPath(); + guideArrowComponentBlue.ShowPath(); + isGuideArrowActive = true; + Debug.Log("指引箭头已显示(2条线)"); + } + } + + /// + /// 隐藏指引箭头(本地调用) + /// + public void HideGuideArrow() + { + if (guideArrowComponentRed != null && guideArrowComponentBlue != null && isGuideInitialized) + { + guideArrowComponentRed.ClosePath(); + guideArrowComponentBlue.ClosePath(); + isGuideArrowActive = false; + + // 停止协程 + if (pathUpdateCoroutine != null) + { + StopCoroutine(pathUpdateCoroutine); + pathUpdateCoroutine = null; + } + + Debug.Log("指引箭头已隐藏(2条线)"); + } + } + + /// + /// 清理指引箭头实例 + /// + public void CleanupGuideArrow() + { + // 停止协程 + if (pathUpdateCoroutine != null) + { + StopCoroutine(pathUpdateCoroutine); + pathUpdateCoroutine = null; + } + + if (guideArrowInstanceRed != null) + { + Destroy(guideArrowInstanceRed); + guideArrowInstanceRed = null; + } + + if (guideArrowInstanceBlue != null) + { + Destroy(guideArrowInstanceBlue); + guideArrowInstanceBlue = null; + } + + guideArrowComponentRed = null; + guideArrowComponentBlue = null; + isGuideArrowActive = false; + isGuideInitialized = false; + } + + /// + /// RPC调用:停止所有客户端的指引 + /// + [ClientRpc] + public void RpcStopAllGuide() + { + StopGuide(); + } + + /// + /// 停止指引(在游戏开始或删除门时调用) + /// + public void StopGuide() + { + HideGuideArrow(); + } + + #endregion +} \ No newline at end of file diff --git a/Assets/_MrCs/Scripts/Player/Player.cs b/Assets/_MrCs/Scripts/Player/Player.cs index 08123f10..051cceef 100644 --- a/Assets/_MrCs/Scripts/Player/Player.cs +++ b/Assets/_MrCs/Scripts/Player/Player.cs @@ -276,6 +276,8 @@ public class Player : NetworkRoomPlayer,IDamagable teamType = TeamType.Red; GameManager.Ins.GivePistol(index); GameManager.Ins.CheckGameStart(); + GameManager.Ins.CleanupGuideArrow(); + } if (other.tag == "BlueDoor") @@ -284,6 +286,8 @@ public class Player : NetworkRoomPlayer,IDamagable teamType = TeamType.Blue; GameManager.Ins.GivePistol(index); GameManager.Ins.CheckGameStart(); + GameManager.Ins.CleanupGuideArrow(); + } } diff --git a/Assets/_MrCs/Scripts/UI/HUDPanel.cs b/Assets/_MrCs/Scripts/UI/HUDPanel.cs index c56b6c07..2940d859 100644 --- a/Assets/_MrCs/Scripts/UI/HUDPanel.cs +++ b/Assets/_MrCs/Scripts/UI/HUDPanel.cs @@ -191,6 +191,12 @@ public class HUDPanel : MonoBehaviour if (roundIndex == 3) { GameEnd(blueScore, redScore); + Debug.Log("游戏结束,5秒后退出"); + CoroutineTaskManager.Instance.WaitSecondTodo(() => + { + Debug.Log("正在退出游戏..."); + Application.Quit(); + }, 5f); return; } MasterAudio.PlaySound("3.9"); diff --git a/Assets/_Valheim/Prefabs.meta b/Assets/_Valheim/Prefabs.meta new file mode 100644 index 00000000..16f576dd --- /dev/null +++ b/Assets/_Valheim/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8bb26b118cc88e443bf430984bd7b57a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Valheim/Prefabs/Pet.meta b/Assets/_Valheim/Prefabs/Pet.meta new file mode 100644 index 00000000..90aa2154 --- /dev/null +++ b/Assets/_Valheim/Prefabs/Pet.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e2ef7877d91af0849828c16edc2a3230 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Valheim/Prefabs/Pet/Player.meta b/Assets/_Valheim/Prefabs/Pet/Player.meta new file mode 100644 index 00000000..723f0268 --- /dev/null +++ b/Assets/_Valheim/Prefabs/Pet/Player.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 41d8449cd6ef8c54aa48eeea20e43145 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Valheim/Prefabs/Pet/Player/PathGuide.prefab b/Assets/_Valheim/Prefabs/Pet/Player/PathGuide.prefab new file mode 100644 index 00000000..b312541c --- /dev/null +++ b/Assets/_Valheim/Prefabs/Pet/Player/PathGuide.prefab @@ -0,0 +1,172 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &718552219040796497 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 718552219040796499} + - component: {fileID: 718552219040796498} + - component: {fileID: 718552219040796508} + - component: {fileID: -1289911475552001029} + m_Layer: 0 + m_Name: PathGuide + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &718552219040796499 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718552219040796497} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!120 &718552219040796498 +LineRenderer: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718552219040796497} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: d89e79b4cfdd0ae4e9a7b611c4b172b1, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Positions: + - {x: 0, y: 0, z: 0} + - {x: 0, y: 0, z: 1} + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 0 + alignment: 0 + textureMode: 4 + textureScale: {x: 1, y: 1} + shadowBias: 0.5 + generateLightingData: 0 + m_MaskInteraction: 0 + m_UseWorldSpace: 0 + m_Loop: 0 + m_ApplyActiveColorSpace: 0 +--- !u!114 &718552219040796508 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718552219040796497} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8cdda35296b966646ada44468a5c40c5, type: 3} + m_Name: + m_EditorClassIdentifier: + syncDirection: 0 + syncMode: 0 + syncInterval: 0 +--- !u!114 &-1289911475552001029 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 718552219040796497} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3} + m_Name: + m_EditorClassIdentifier: + sceneId: 0 + _assetId: 4156201627 + serverOnly: 0 + visible: 0 + hasSpawned: 0 diff --git a/Assets/_Valheim/Prefabs/Pet/Player/PathGuide.prefab.meta b/Assets/_Valheim/Prefabs/Pet/Player/PathGuide.prefab.meta new file mode 100644 index 00000000..d3c9df4a --- /dev/null +++ b/Assets/_Valheim/Prefabs/Pet/Player/PathGuide.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 1090ff9efb8eaa94cbdc6dfa4042d3b7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Valheim/Scripts.meta b/Assets/_Valheim/Scripts.meta new file mode 100644 index 00000000..7403e89c --- /dev/null +++ b/Assets/_Valheim/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66f6b66cfef0a194cad6e74200e9f138 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Valheim/Scripts/Player.meta b/Assets/_Valheim/Scripts/Player.meta new file mode 100644 index 00000000..07b732fa --- /dev/null +++ b/Assets/_Valheim/Scripts/Player.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab89cc5a9acefa34db85ad4749b51af8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_Valheim/Scripts/Player/GuideArrowPath.cs b/Assets/_Valheim/Scripts/Player/GuideArrowPath.cs new file mode 100644 index 00000000..8be501a8 --- /dev/null +++ b/Assets/_Valheim/Scripts/Player/GuideArrowPath.cs @@ -0,0 +1,102 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class GuideArrowPath : MonoBehaviour +{ + public LayerMask obstacleMask; + public float pathHeight = 0.5f; + + private LineRenderer lineRenderer; + private bool isPathVisible = false; + + void Awake() + { + // 从预制体上获取已存在的LineRenderer组件 + lineRenderer = GetComponent(); + if (lineRenderer == null) + { + Debug.LogError("LineRenderer组件未找到!请确保预制体上已挂载LineRenderer组件"); + return; + } + + // 预制体上已预设LineRenderer属性,这里不再动态设置 + // 如果需要在代码中覆盖预制体设置,可以取消注释以下代码 + /* + lineRenderer.startWidth = 0.1f; + lineRenderer.endWidth = 0.1f; + lineRenderer.material = new Material(Shader.Find("Sprites/Default")); + lineRenderer.startColor = Color.yellow; + lineRenderer.endColor = Color.red; + */ + + lineRenderer.positionCount = 0; + lineRenderer.enabled = false; // 初始禁用 + + Debug.Log("GuideArrowPath 初始化完成,LineRenderer: " + (lineRenderer != null)); + } + + /// + /// 设置路径 + /// + public void SetPath(List pathPoints) + { + if (lineRenderer == null) + { + Debug.LogError("LineRenderer 未找到!"); + return; + } + + if (pathPoints == null || pathPoints.Count < 2) + { + lineRenderer.positionCount = 0; + return; + } + + // 调整路径点高度 + for (int i = 0; i < pathPoints.Count; i++) + { + pathPoints[i] = new Vector3(pathPoints[i].x, pathHeight, pathPoints[i].z); + } + + lineRenderer.positionCount = pathPoints.Count; + lineRenderer.SetPositions(pathPoints.ToArray()); + + Debug.Log("设置路径,点数: " + pathPoints.Count); + } + + /// + /// 显示路径 + /// + public void ShowPath() + { + if (lineRenderer != null) + { + lineRenderer.enabled = true; + isPathVisible = true; + Debug.Log("显示路径,LineRenderer enabled: " + lineRenderer.enabled); + } + } + + /// + /// 关闭路径 + /// + public void ClosePath() + { + if (lineRenderer != null) + { + lineRenderer.enabled = false; + isPathVisible = false; + lineRenderer.positionCount = 0; + Debug.Log("关闭路径"); + } + } + + /// + /// 检查路径是否可见 + /// + public bool IsPathVisible() + { + return isPathVisible && lineRenderer != null && lineRenderer.enabled; + } +} \ No newline at end of file diff --git a/Assets/_Valheim/Scripts/Player/GuideArrowPath.cs.meta b/Assets/_Valheim/Scripts/Player/GuideArrowPath.cs.meta new file mode 100644 index 00000000..bb54d941 --- /dev/null +++ b/Assets/_Valheim/Scripts/Player/GuideArrowPath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8cdda35296b966646ada44468a5c40c5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1.meta b/Assets/sucai/Hovl Studio 1.meta new file mode 100644 index 00000000..5956c2c2 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f252e080092ea5b4dbd7e2a8eb967313 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack.meta new file mode 100644 index 00000000..9964b7e1 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 53b5a76f32635a84693329a01b1acca4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes.meta new file mode 100644 index 00000000..71639ed6 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: de80eee5c30f2784f831e7698947df71 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1.meta new file mode 100644 index 00000000..e89a9498 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f99c59b5e30a0bb489baddcf6f9b0b1f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1/CameraHolder.cs b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1/CameraHolder.cs new file mode 100644 index 00000000..b916137a --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1/CameraHolder.cs @@ -0,0 +1,163 @@ +using System.Collections; +using System.Collections.Generic; +using System.Runtime.Serialization.Formatters; +using System; +using UnityEngine; + +public class CameraHolder : MonoBehaviour +{ + //camera holder + public Transform Holder; + public float currDistance = 5.0f; + public float xRotate = 250.0f; + public float yRotate = 120.0f; + public float yMinLimit = -20f; + public float yMaxLimit = 80f; + public float prevDistance; + private float x = 0.0f; + private float y = 0.0f; + + [Header("GUI")] + private float windowDpi; + public GameObject[] Prefabs; + private int Prefab; + private GameObject Instance; + private float StartColor; + private float HueColor; + public Texture HueTexture; + + void Start() + { + if (Screen.dpi < 1) windowDpi = 1; + if (Screen.dpi < 200) windowDpi = 1; + else windowDpi = Screen.dpi / 200f; + var angles = transform.eulerAngles; + x = angles.y; + y = angles.x; + Counter(0); + } + + private void OnGUI() + { + if (GUI.Button(new Rect(5 * windowDpi, 5 * windowDpi, 110 * windowDpi, 35 * windowDpi), "Previous effect")) + { + Counter(-1); + } + if (GUI.Button(new Rect(120 * windowDpi, 5 * windowDpi, 110 * windowDpi, 35 * windowDpi), "Play again")) + { + Counter(0); + } + if (GUI.Button(new Rect(235 * windowDpi, 5 * windowDpi, 110 * windowDpi, 35 * windowDpi), "Next effect")) + { + Counter(+1); + } + + StartColor = HueColor; + HueColor = GUI.HorizontalSlider(new Rect(5 * windowDpi, 45 * windowDpi, 340 * windowDpi, 35 * windowDpi), HueColor, 0, 1); + GUI.DrawTexture(new Rect(5 * windowDpi, 65 * windowDpi, 340 * windowDpi, 15 * windowDpi), HueTexture, ScaleMode.StretchToFill, false, 0); + if (HueColor != StartColor) + { + int i = 0; + foreach (var ps in particleSystems) + { + var main = ps.main; + Color colorHSV = Color.HSVToRGB(HueColor + H * 0, svList[i].S, svList[i].V); + main.startColor = new Color(colorHSV.r, colorHSV.g, colorHSV.b, svList[i].A); + i++; + } + } + } + + private ParticleSystem[] particleSystems = new ParticleSystem[0]; + private List svList = new List(); + private float H; + + public struct SVA + { + public float S; + public float V; + public float A; + } + + void Counter(int count) + { + Prefab += count; + if (Prefab > Prefabs.Length - 1) + { + Prefab = 0; + } + else if (Prefab < 0) + { + Prefab = Prefabs.Length - 1; + } + if (Instance != null) + { + Destroy(Instance); + } + Instance = Instantiate(Prefabs[Prefab]); + particleSystems = Instance.GetComponentsInChildren(); //Get color from current instance + svList.Clear(); + foreach (var ps in particleSystems) + { + Color baseColor = ps.main.startColor.color; + SVA baseSVA = new SVA(); + Color.RGBToHSV(baseColor, out H, out baseSVA.S, out baseSVA.V); + baseSVA.A = baseColor.a; + svList.Add(baseSVA); + } + } + + void LateUpdate() + { + if (currDistance < 2) + { + currDistance = 2; + } + currDistance -= Input.GetAxis("Mouse ScrollWheel") * 2; + if (Holder && (Input.GetMouseButton(0) || Input.GetMouseButton(1))) + { + var pos = Input.mousePosition; + float dpiScale = 1; + if (Screen.dpi < 1) dpiScale = 1; + if (Screen.dpi < 200) dpiScale = 1; + else dpiScale = Screen.dpi / 200f; + if (pos.x < 380 * dpiScale && Screen.height - pos.y < 250 * dpiScale) return; + Cursor.visible = false; + Cursor.lockState = CursorLockMode.Locked; + x += (float)(Input.GetAxis("Mouse X") * xRotate * 0.02); + y -= (float)(Input.GetAxis("Mouse Y") * yRotate * 0.02); + y = ClampAngle(y, yMinLimit, yMaxLimit); + var rotation = Quaternion.Euler(y, x, 0); + var position = rotation * new Vector3(0, 0, -currDistance) + Holder.position; + transform.rotation = rotation; + transform.position = position; + } + else + { + Cursor.visible = true; + Cursor.lockState = CursorLockMode.None; + } + + if (prevDistance != currDistance) + { + prevDistance = currDistance; + var rot = Quaternion.Euler(y, x, 0); + var po = rot * new Vector3(0, 0, -currDistance) + Holder.position; + transform.rotation = rot; + transform.position = po; + } + } + + static float ClampAngle(float angle, float min, float max) + { + if (angle < -360) + { + angle += 360; + } + if (angle > 360) + { + angle -= 360; + } + return Mathf.Clamp(angle, min, max); + } +} \ No newline at end of file diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1/CameraHolder.cs.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1/CameraHolder.cs.meta new file mode 100644 index 00000000..8985ccfd --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo magic circles Vol 1/CameraHolder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0b99cd4d7484b23488edaed430e3e34f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers.meta new file mode 100644 index 00000000..d152f18e --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3115d000755584246bd1003ab175d238 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers/RaycastInstance.cs b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers/RaycastInstance.cs new file mode 100644 index 00000000..b0cc9741 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers/RaycastInstance.cs @@ -0,0 +1,78 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class RaycastInstance : MonoBehaviour +{ + public Camera Cam; + public GameObject[] Prefabs; + private int Prefab; + private Ray RayMouse; + private GameObject Instance; + private float windowDpi; + + //Double-click protection + private float buttonSaver = 0f; + + void Start() + { + if (Screen.dpi < 1) windowDpi = 1; + if (Screen.dpi < 200) windowDpi = 1; + else windowDpi = Screen.dpi / 200f; + Counter(0); + } + + void Update() + { + if (Input.GetButtonDown("Fire1")) + { + if (Cam != null) + { + RaycastHit hit; + var mousePos = Input.mousePosition; + RayMouse = Cam.ScreenPointToRay(mousePos); + if (Physics.Raycast(RayMouse.origin, RayMouse.direction, out hit, 40)) + { + Instance = Instantiate(Prefabs[Prefab]); + Instance.transform.position = hit.point + hit.normal * 0.01f; + Destroy(Instance, 1.5f); + } + } + else + { + Debug.Log("No camera"); + } + } + + if ((Input.GetKey(KeyCode.A) || Input.GetAxis("Horizontal") < 0) && buttonSaver >= 0.4f)// left button + { + buttonSaver = 0f; + Counter(-1); + } + if ((Input.GetKey(KeyCode.D) || Input.GetAxis("Horizontal") > 0) && buttonSaver >= 0.4f)// right button + { + buttonSaver = 0f; + Counter(+1); + } + buttonSaver += Time.deltaTime; + } + + void OnGUI() + { + GUI.Label(new Rect(10 * windowDpi, 5 * windowDpi, 400 * windowDpi, 20 * windowDpi), "Use the keyboard buttons A/<- and D/-> to change prefabs!"); + GUI.Label(new Rect(10 * windowDpi, 20 * windowDpi, 400 * windowDpi, 20 * windowDpi), "Use left mouse button for instancing!"); + } + + void Counter(int count) + { + Prefab += count; + if (Prefab > Prefabs.Length - 1) + { + Prefab = 0; + } + else if (Prefab < 0) + { + Prefab = Prefabs.Length - 1; + } + } +} diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers/RaycastInstance.cs.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers/RaycastInstance.cs.meta new file mode 100644 index 00000000..f39ae097 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Demo scenes/Demo track markers/RaycastInstance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d8525fc6b3b62e24e86a37b99d3aec83 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials.meta new file mode 100644 index 00000000..0710eb97 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 15f8b14f0e14b3b45a32d03a8c2c8291 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials/Shield2bcg 1.mat b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials/Shield2bcg 1.mat new file mode 100644 index 00000000..d3799b7b --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials/Shield2bcg 1.mat @@ -0,0 +1,111 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Shield2bcg 1 + m_Shader: {fileID: 4800000, guid: b68b99c2e57cef4419465c63c527201b, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: + - _USEDEPTH_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Flow: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: e6f1be8867d4eb246825875f8ab19c1e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Mask: + 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} + - _Noise: + 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} + - _texcoord: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _CullMode: 0 + - _Cutoff: 0.5 + - _Depthpower: 0.15 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _Emission: 2 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _InvFade: 3 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Opacity: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _Usecenterglow: 0 + - _Usedepth: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _DistortionSpeedXYPowerZ: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpeedMainTexUVNoiseUV: {r: 0, g: 0, b: 0, a: 0} + - _SpeedMainTexUVNoiseZW: {r: -1, g: 0, b: 0, a: 0} + - _TintColor: {r: 1, g: 1, b: 1, a: 1} + - _UVDistortionOpacity: {r: -1, g: 0, b: 1, a: 0.4} + m_BuildTextureStacks: [] diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials/Shield2bcg 1.mat.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials/Shield2bcg 1.mat.meta new file mode 100644 index 00000000..dc0237d7 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Materials/Shield2bcg 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d89e79b4cfdd0ae4e9a7b611c4b172b1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts.meta new file mode 100644 index 00000000..250e3954 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f2f25f2d5435df42adb203274716f86 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/EGA_EffectSound.cs b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/EGA_EffectSound.cs new file mode 100644 index 00000000..24e7896e --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/EGA_EffectSound.cs @@ -0,0 +1,36 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class EGA_EffectSound : MonoBehaviour +{ + public bool Repeating = true; + public float RepeatTime = 2.0f; + public float StartTime = 0.0f; + public bool RandomVolume; + public float minVolume = .4f; + public float maxVolume = 1f; + private AudioClip clip; + + private AudioSource soundComponent; + + void Start () + { + soundComponent = GetComponent(); + clip = soundComponent.clip; + if (RandomVolume == true) + { + soundComponent.volume = Random.Range(minVolume, maxVolume); + RepeatSound(); + } + if (Repeating == true) + { + InvokeRepeating("RepeatSound", StartTime, RepeatTime); + } + } + + void RepeatSound() + { + soundComponent.PlayOneShot(clip); + } +} diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/EGA_EffectSound.cs.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/EGA_EffectSound.cs.meta new file mode 100644 index 00000000..b5cb2a58 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/EGA_EffectSound.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a79ba5bb0b3780b4a98ce45e779b6441 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_DemoLasers.cs b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_DemoLasers.cs new file mode 100644 index 00000000..a1b041a4 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_DemoLasers.cs @@ -0,0 +1,125 @@ +using System.Collections; +using System.Collections.Generic; +using System.Runtime.Serialization.Formatters; +using System; +using UnityEngine; + +public class Hovl_DemoLasers : MonoBehaviour +{ + public GameObject FirePoint; + public Camera Cam; + public float MaxLength; + public GameObject[] Prefabs; + + private Ray RayMouse; + private Vector3 direction; + private Quaternion rotation; + + [Header("GUI")] + private float windowDpi; + + private int Prefab; + private GameObject Instance; + private Hovl_Laser LaserScript; + private Hovl_Laser2 LaserScript2; + + //Double-click protection + private float buttonSaver = 0f; + + void Start () + { + //LaserEndPoint = new Vector3(0, 0, 0); + if (Screen.dpi < 1) windowDpi = 1; + if (Screen.dpi < 200) windowDpi = 1; + else windowDpi = Screen.dpi / 200f; + Counter(0); + } + + void Update() + { + //Enable lazer + if (Input.GetMouseButtonDown(0)) + { + Destroy(Instance); + Instance = Instantiate(Prefabs[Prefab], FirePoint.transform.position, FirePoint.transform.rotation); + Instance.transform.parent = transform; + LaserScript = Instance.GetComponent(); + LaserScript2 = Instance.GetComponent(); + } + + //Disable lazer prefab + if (Input.GetMouseButtonUp(0)) + { + if (LaserScript) LaserScript.DisablePrepare(); + if (LaserScript2) LaserScript2.DisablePrepare(); + Destroy(Instance,1); + } + + //To change lazers + if ((Input.GetKey(KeyCode.A) || Input.GetAxis("Horizontal") < 0) && buttonSaver >= 0.4f)// left button + { + buttonSaver = 0f; + Counter(-1); + } + if ((Input.GetKey(KeyCode.D) || Input.GetAxis("Horizontal") > 0) && buttonSaver >= 0.4f)// right button + { + buttonSaver = 0f; + Counter(+1); + } + buttonSaver += Time.deltaTime; + + + //Current fire point + if (Cam != null) + { + RaycastHit hit; //DELATE THIS IF YOU WANT TO USE LASERS IN 2D + var mousePos = Input.mousePosition; + RayMouse = Cam.ScreenPointToRay(mousePos); + //ADD THIS IF YOU WANT TO USE LASERS IN 2D: RaycastHit2D hit = Physics2D.Raycast(RayMouse.origin, RayMouse.direction, MaxLength); + if (Physics.Raycast(RayMouse.origin, RayMouse.direction, out hit, MaxLength)) //CHANGE THIS IF YOU WANT TO USE LASERRS IN 2D: if (hit.collider != null) + { + RotateToMouseDirection(gameObject, hit.point); + //LaserEndPoint = hit.point; + } + else + { + var pos = RayMouse.GetPoint(MaxLength); + RotateToMouseDirection(gameObject, pos); + //LaserEndPoint = pos; + } + } + else + { + Debug.Log("No camera"); + } + } + + //GUI Text + void OnGUI() + { + GUI.Label(new Rect(10 * windowDpi, 5 * windowDpi, 400 * windowDpi, 20 * windowDpi), "Use the keyboard buttons A/<- and D/-> to change lazers!"); + GUI.Label(new Rect(10 * windowDpi, 20 * windowDpi, 400 * windowDpi, 20 * windowDpi), "Use left mouse button for shooting!"); + } + + //To change prefabs (count - prefab number) + void Counter(int count) + { + Prefab += count; + if (Prefab > Prefabs.Length - 1) + { + Prefab = 0; + } + else if (Prefab < 0) + { + Prefab = Prefabs.Length - 1; + } + } + + //To rotate fire point + void RotateToMouseDirection (GameObject obj, Vector3 destination) + { + direction = destination - obj.transform.position; + rotation = Quaternion.LookRotation(direction); + obj.transform.localRotation = Quaternion.Lerp(obj.transform.rotation, rotation, 1); + } +} diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_DemoLasers.cs.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_DemoLasers.cs.meta new file mode 100644 index 00000000..d07ba479 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_DemoLasers.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6af44eb64ff318b42a219a7abd31ff20 +timeCreated: 1536001444 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser.cs b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser.cs new file mode 100644 index 00000000..76a2f90f --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser.cs @@ -0,0 +1,115 @@ +using System.Collections; +using System.Collections.Generic; +using System.Runtime.Serialization.Formatters; +using System; +using UnityEngine; + +public class Hovl_Laser : MonoBehaviour +{ + public GameObject HitEffect; + public float HitOffset = 0; + public bool useLaserRotation = false; + + public float MaxLength; + private LineRenderer Laser; + + public float MainTextureLength = 1f; + public float NoiseTextureLength = 1f; + private Vector4 Length = new Vector4(1,1,1,1); + //private Vector4 LaserSpeed = new Vector4(0, 0, 0, 0); {DISABLED AFTER UPDATE} + //private Vector4 LaserStartSpeed; {DISABLED AFTER UPDATE} + //One activation per shoot + private bool LaserSaver = false; + private bool UpdateSaver = false; + + private ParticleSystem[] Effects; + private ParticleSystem[] Hit; + + void Start () + { + //Get LineRender and ParticleSystem components from current prefab; + Laser = GetComponent(); + Effects = GetComponentsInChildren(); + Hit = HitEffect.GetComponentsInChildren(); + //if (Laser.material.HasProperty("_SpeedMainTexUVNoiseZW")) LaserStartSpeed = Laser.material.GetVector("_SpeedMainTexUVNoiseZW"); + //Save [1] and [3] textures speed + //{ DISABLED AFTER UPDATE} + //LaserSpeed = LaserStartSpeed; + } + + void Update() + { + //if (Laser.material.HasProperty("_SpeedMainTexUVNoiseZW")) Laser.material.SetVector("_SpeedMainTexUVNoiseZW", LaserSpeed); + //SetVector("_TilingMainTexUVNoiseZW", Length); - old code, _TilingMainTexUVNoiseZW no more exist + Laser.material.SetTextureScale("_MainTex", new Vector2(Length[0], Length[1])); + Laser.material.SetTextureScale("_Noise", new Vector2(Length[2], Length[3])); + //To set LineRender position + if (Laser != null && UpdateSaver == false) + { + Laser.SetPosition(0, transform.position); + RaycastHit hit; //DELETE THIS IF YOU WANT USE LASERS IN 2D + //ADD THIS IF YOU WANNT TO USE LASERS IN 2D: RaycastHit2D hit = Physics2D.Raycast(transform.position, transform.forward, MaxLength); + if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, MaxLength))//CHANGE THIS IF YOU WANT TO USE LASERRS IN 2D: if (hit.collider != null) + { + //End laser position if collides with object + Laser.SetPosition(1, hit.point); + + HitEffect.transform.position = hit.point + hit.normal * HitOffset; + if (useLaserRotation) + HitEffect.transform.rotation = transform.rotation; + else + HitEffect.transform.LookAt(hit.point + hit.normal); + + foreach (var AllPs in Effects) + { + if (!AllPs.isPlaying) AllPs.Play(); + } + //Texture tiling + Length[0] = MainTextureLength * (Vector3.Distance(transform.position, hit.point)); + Length[2] = NoiseTextureLength * (Vector3.Distance(transform.position, hit.point)); + //Texture speed balancer {DISABLED AFTER UPDATE} + //LaserSpeed[0] = (LaserStartSpeed[0] * 4) / (Vector3.Distance(transform.position, hit.point)); + //LaserSpeed[2] = (LaserStartSpeed[2] * 4) / (Vector3.Distance(transform.position, hit.point)); + } + else + { + //End laser position if doesn't collide with object + var EndPos = transform.position + transform.forward * MaxLength; + Laser.SetPosition(1, EndPos); + HitEffect.transform.position = EndPos; + foreach (var AllPs in Hit) + { + if (AllPs.isPlaying) AllPs.Stop(); + } + //Texture tiling + Length[0] = MainTextureLength * (Vector3.Distance(transform.position, EndPos)); + Length[2] = NoiseTextureLength * (Vector3.Distance(transform.position, EndPos)); + //LaserSpeed[0] = (LaserStartSpeed[0] * 4) / (Vector3.Distance(transform.position, EndPos)); {DISABLED AFTER UPDATE} + //LaserSpeed[2] = (LaserStartSpeed[2] * 4) / (Vector3.Distance(transform.position, EndPos)); {DISABLED AFTER UPDATE} + } + //Insurance against the appearance of a laser in the center of coordinates! + if (Laser.enabled == false && LaserSaver == false) + { + LaserSaver = true; + Laser.enabled = true; + } + } + } + + public void DisablePrepare() + { + if (Laser != null) + { + Laser.enabled = false; + } + UpdateSaver = true; + //Effects can = null in multiply shooting + if (Effects != null) + { + foreach (var AllPs in Effects) + { + if (AllPs.isPlaying) AllPs.Stop(); + } + } + } +} diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser.cs.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser.cs.meta new file mode 100644 index 00000000..f486517d --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7ea4308861e24ac4caa06d26e151d595 +timeCreated: 1536001444 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser2.cs b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser2.cs new file mode 100644 index 00000000..34de9c3d --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser2.cs @@ -0,0 +1,146 @@ +using System.Collections; +using System.Collections.Generic; +using System.Runtime.Serialization.Formatters; +using System; +using UnityEngine; + +public class Hovl_Laser2 : MonoBehaviour +{ + public float laserScale = 1; + public Color laserColor = new Vector4(1,1,1,1); + public GameObject HitEffect; + public GameObject FlashEffect; + public float HitOffset = 0; + + public float MaxLength; + + private bool UpdateSaver = false; + private ParticleSystem laserPS; + private ParticleSystem[] Flash; + private ParticleSystem[] Hit; + private Material laserMat; + private int particleCount; + private ParticleSystem.Particle[] particles; + private Vector3[] particlesPositions; + private float dissovleTimer = 0; + private bool startDissovle = false; + + void Start() + { + laserPS = GetComponent(); + laserMat = GetComponent().material; + Flash = FlashEffect.GetComponentsInChildren(); + Hit = HitEffect.GetComponentsInChildren(); + laserMat.SetFloat("_Scale", laserScale); + } + + void Update() + { + if (laserPS != null && UpdateSaver == false) + { + //Set start laser point + laserMat.SetVector("_StartPoint", transform.position); + //Set end laser point + RaycastHit hit; + if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, MaxLength)) + { + particleCount = Mathf.RoundToInt(hit.distance / (2 * laserScale)); + if (particleCount < hit.distance / (2 * laserScale)) + { + particleCount += 1; + } + particlesPositions = new Vector3[particleCount]; + AddParticles(); + + laserMat.SetFloat("_Distance", hit.distance); + laserMat.SetVector("_EndPoint", hit.point); + if (Hit != null) + { + HitEffect.transform.position = hit.point + hit.normal * HitOffset; + HitEffect.transform.LookAt(hit.point); + foreach (var AllHits in Hit) + { + if (!AllHits.isPlaying) AllHits.Play(); + } + foreach (var AllFlashes in Flash) + { + if (!AllFlashes.isPlaying) AllFlashes.Play(); + } + } + } + else + { + //End laser position if doesn't collide with object + var EndPos = transform.position + transform.forward * MaxLength; + var distance = Vector3.Distance(EndPos, transform.position); + particleCount = Mathf.RoundToInt(distance / (2 * laserScale)); + if (particleCount < distance / (2 * laserScale)) + { + particleCount += 1; + } + particlesPositions = new Vector3[particleCount]; + AddParticles(); + + laserMat.SetFloat("_Distance", distance); + laserMat.SetVector("_EndPoint", EndPos); + if (Hit != null) + { + HitEffect.transform.position = EndPos; + foreach (var AllPs in Hit) + { + if (AllPs.isPlaying) AllPs.Stop(); + } + } + } + } + + if (startDissovle) + { + dissovleTimer += Time.deltaTime; + laserMat.SetFloat("_Dissolve", dissovleTimer*5); + } + } + + void AddParticles() + { + //Old particles settings + /* + var normalDistance = particleCount; + var sh = LaserPS.shape; + sh.radius = normalDistance; + sh.position = new Vector3(0,0, normalDistance); + LaserPS.emission.SetBursts(new[] { new ParticleSystem.Burst(0f, particleCount + 1) }); + */ + + particles = new ParticleSystem.Particle[particleCount]; + + for (int i = 0; i < particleCount; i++) + { + particlesPositions[i] = new Vector3(0f, 0f, 0f) + new Vector3(0f, 0f, i * 2 * laserScale); + particles[i].position = particlesPositions[i]; + particles[i].startSize3D = new Vector3(0.001f, 0.001f, 2 * laserScale); + particles[i].startColor = laserColor; + } + laserPS.SetParticles(particles, particles.Length); + } + + public void DisablePrepare() + { + transform.parent = null; + dissovleTimer = 0; + startDissovle = true; + UpdateSaver = true; + if (Flash != null && Hit != null) + { + foreach (var AllHits in Hit) + { + if (AllHits.isPlaying) AllHits.Stop(); + } + foreach (var AllFlashes in Flash) + { + if (AllFlashes.isPlaying) AllFlashes.Stop(); + } + } + } +} + \ No newline at end of file diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser2.cs.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser2.cs.meta new file mode 100644 index 00000000..dee827e4 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/Hovl_Laser2.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b7c107ae524aed749b3de3034023eb9d +timeCreated: 1536001444 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/ParticleCollisionInstance.cs b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/ParticleCollisionInstance.cs new file mode 100644 index 00000000..2dc7be48 --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/ParticleCollisionInstance.cs @@ -0,0 +1,48 @@ +/*This script created by using docs.unity3d.com/ScriptReference/MonoBehaviour.OnParticleCollision.html*/ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; + +public class ParticleCollisionInstance : MonoBehaviour +{ + public GameObject[] EffectsOnCollision; + public float DestroyTimeDelay = 5; + public bool UseWorldSpacePosition; + public float Offset = 0; + public Vector3 rotationOffset = new Vector3(0,0,0); + public bool useOnlyRotationOffset = true; + public bool UseFirePointRotation; + public bool DestoyMainEffect = true; + private ParticleSystem part; + private List collisionEvents = new List(); + private ParticleSystem ps; + + void Start() + { + part = GetComponent(); + } + void OnParticleCollision(GameObject other) + { + int numCollisionEvents = part.GetCollisionEvents(other, collisionEvents); + for (int i = 0; i < numCollisionEvents; i++) + { + foreach (var effect in EffectsOnCollision) + { + var instance = Instantiate(effect, collisionEvents[i].intersection + collisionEvents[i].normal * Offset, new Quaternion()) as GameObject; + if (!UseWorldSpacePosition) instance.transform.parent = transform; + if (UseFirePointRotation) { instance.transform.LookAt(transform.position); } + else if (rotationOffset != Vector3.zero && useOnlyRotationOffset) { instance.transform.rotation = Quaternion.Euler(rotationOffset); } + else + { + instance.transform.LookAt(collisionEvents[i].intersection + collisionEvents[i].normal); + instance.transform.rotation *= Quaternion.Euler(rotationOffset); + } + Destroy(instance, DestroyTimeDelay); + } + } + if (DestoyMainEffect == true) + { + Destroy(gameObject, DestroyTimeDelay + 0.5f); + } + } +} diff --git a/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/ParticleCollisionInstance.cs.meta b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/ParticleCollisionInstance.cs.meta new file mode 100644 index 00000000..619f6d8c --- /dev/null +++ b/Assets/sucai/Hovl Studio 1/RPG VFX pack/Scripts/ParticleCollisionInstance.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 1a959a1b0b8414d4fb8a68bdc12d69ed +timeCreated: 1516192333 +licenseType: Store +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio/Resources/Scripts.meta b/Assets/sucai/Hovl Studio/Resources/Scripts.meta new file mode 100644 index 00000000..d22fc636 --- /dev/null +++ b/Assets/sucai/Hovl Studio/Resources/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d8a41eea3de40a4cb6e2cfc61c3a558 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes.meta b/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes.meta new file mode 100644 index 00000000..533c4c53 --- /dev/null +++ b/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 640cf3e99f9a4a742bb7327f187b2e54 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes/HS_CameraHolder.cs b/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes/HS_CameraHolder.cs new file mode 100644 index 00000000..b18a22bc --- /dev/null +++ b/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes/HS_CameraHolder.cs @@ -0,0 +1,164 @@ +using System.Collections; +using System.Collections.Generic; +using System.Runtime.Serialization.Formatters; +using System; +using UnityEngine; + +public class HS_CameraHolder : MonoBehaviour +{ + //camera holder + public Transform Holder; + public Vector3 cameraPos = new Vector3(0, 0, 0); + public float currDistance = 5.0f; + public float xRotate = 250.0f; + public float yRotate = 120.0f; + public float yMinLimit = -20f; + public float yMaxLimit = 80f; + public float prevDistance; + private float x = 0.0f; + private float y = 0.0f; + + [Header("GUI")] + private float windowDpi; + public GameObject[] Prefabs; + private int Prefab; + private GameObject Instance; + private float StartColor; + private float HueColor; + public Texture HueTexture; + + void Start() + { + if (Screen.dpi < 1) windowDpi = 1; + if (Screen.dpi < 200) windowDpi = 1; + else windowDpi = Screen.dpi / 200f; + var angles = transform.eulerAngles; + x = angles.y; + y = angles.x; + Counter(0); + } + + private void OnGUI() + { + if (GUI.Button(new Rect(5 * windowDpi, 5 * windowDpi, 110 * windowDpi, 35 * windowDpi), "Previous effect")) + { + Counter(-1); + } + if (GUI.Button(new Rect(120 * windowDpi, 5 * windowDpi, 110 * windowDpi, 35 * windowDpi), "Play again")) + { + Counter(0); + } + if (GUI.Button(new Rect(235 * windowDpi, 5 * windowDpi, 110 * windowDpi, 35 * windowDpi), "Next effect")) + { + Counter(+1); + } + + StartColor = HueColor; + HueColor = GUI.HorizontalSlider(new Rect(5 * windowDpi, 45 * windowDpi, 340 * windowDpi, 35 * windowDpi), HueColor, 0, 1); + GUI.DrawTexture(new Rect(5 * windowDpi, 65 * windowDpi, 340 * windowDpi, 15 * windowDpi), HueTexture, ScaleMode.StretchToFill, false, 0); + if (HueColor != StartColor) + { + int i = 0; + foreach (var ps in particleSystems) + { + var main = ps.main; + Color colorHSV = Color.HSVToRGB(HueColor + H * 0, svList[i].S, svList[i].V); + main.startColor = new Color(colorHSV.r, colorHSV.g, colorHSV.b, svList[i].A); + i++; + } + } + } + + private ParticleSystem[] particleSystems = new ParticleSystem[0]; + private List svList = new List(); + private float H; + + public struct SVA + { + public float S; + public float V; + public float A; + } + + void Counter(int count) + { + Prefab += count; + if (Prefab > Prefabs.Length - 1) + { + Prefab = 0; + } + else if (Prefab < 0) + { + Prefab = Prefabs.Length - 1; + } + if (Instance != null) + { + Destroy(Instance); + } + Instance = Instantiate(Prefabs[Prefab]); + particleSystems = Instance.GetComponentsInChildren(); //Get color from current instance + svList.Clear(); + foreach (var ps in particleSystems) + { + Color baseColor = ps.main.startColor.color; + SVA baseSVA = new SVA(); + Color.RGBToHSV(baseColor, out H, out baseSVA.S, out baseSVA.V); + baseSVA.A = baseColor.a; + svList.Add(baseSVA); + } + } + + void LateUpdate() + { + if (currDistance < 2) + { + currDistance = 2; + } + currDistance -= Input.GetAxis("Mouse ScrollWheel") * 2; + if (Holder && (Input.GetMouseButton(0) || Input.GetMouseButton(1))) + { + var pos = Input.mousePosition; + float dpiScale = 1; + if (Screen.dpi < 1) dpiScale = 1; + if (Screen.dpi < 200) dpiScale = 1; + else dpiScale = Screen.dpi / 200f; + if (pos.x < 380 * dpiScale && Screen.height - pos.y < 250 * dpiScale) return; + Cursor.visible = false; + Cursor.lockState = CursorLockMode.Locked; + x += (float)(Input.GetAxis("Mouse X") * xRotate * 0.02); + y -= (float)(Input.GetAxis("Mouse Y") * yRotate * 0.02); + y = ClampAngle(y, yMinLimit, yMaxLimit); + var rotation = Quaternion.Euler(y, x, 0); + var position = rotation * new Vector3(0, 0, -currDistance) + Holder.position + cameraPos; + transform.rotation = rotation; + transform.position = position; + } + else + { + Cursor.visible = true; + Cursor.lockState = CursorLockMode.None; + } + + if (prevDistance != currDistance) + { + prevDistance = currDistance; + var rot = Quaternion.Euler(y, x, 0); + var po = rot * new Vector3(0, 0, -currDistance) + Holder.position + cameraPos; + transform.rotation = rot; + transform.position = po; + } + } + + static float ClampAngle(float angle, float min, float max) + { + if (angle < -360) + { + angle += 360; + } + if (angle > 360) + { + angle -= 360; + } + return Mathf.Clamp(angle, min, max); + } +} \ No newline at end of file diff --git a/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes/HS_CameraHolder.cs.meta b/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes/HS_CameraHolder.cs.meta new file mode 100644 index 00000000..9f62e022 --- /dev/null +++ b/Assets/sucai/Hovl Studio/Resources/Scripts/For demo scenes/HS_CameraHolder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a586cf93dc19b28488308d7488b8de20 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index eb99eba2..34400c44 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -38,7 +38,7 @@ EditorBuildSettings: - enabled: 0 path: Assets/_MrCs/Scenes/Hunan_Jishou_Qianzhou_Tianhong.unity guid: 37c4b4b78fbae4b42af576fc4f762a1b - - enabled: 0 + - enabled: 1 path: Assets/_MrCs/Scenes/Shandong_Langfang_QingzhouTaihuacheng.unity guid: 9b71fb7b579123d489a56059293aa919 - enabled: 0 @@ -143,7 +143,7 @@ EditorBuildSettings: - enabled: 0 path: Assets/_MrCs/Scenes/Chengdu_Shuangliu_ShengfeiXuexiao.unity guid: 2e05f7f8e45d84e4b91ff22df8f0bf2f - - enabled: 1 + - enabled: 0 path: Assets/_MrCs/Scenes/Chongqing_Yuzhong_Hongyadong_Xiakexing_shiwan.unity guid: 07c056734ffc4754d9cb3a3852898ace m_configObjects: diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index a944ad34..279e238b 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -13,7 +13,7 @@ PlayerSettings: useOnDemandResources: 0 accelerometerFrequency: 60 companyName: pineappletech - productName: "\u706B\u529B\u5BF9\u51B3_\u8BD5\u73A9" + productName: "\u706B\u529B\u5BF9\u51B3" defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} @@ -163,7 +163,7 @@ PlayerSettings: androidSupportedAspectRatio: 1 androidMaxAspectRatio: 2.1 applicationIdentifier: - Android: com.pineappletech.mrcs.chongqingyuzhonghongyadongxiakexingshiwan + Android: com.pineappletech.mrcs.shangdonglangfangqingzhoutaihuacheng Standalone: com.DefaultCompany.com.unity.template.ar buildNumber: Standalone: 0