Added many other things and processings
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5d7ce31a10d90ad4a96c04bae5cfe14f
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,175 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-1671200284100939852
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
version: 10
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: M-Bakery
|
||||
m_Shader: {fileID: -6465566751694194690, guid: 5307d81f6ff873f45a88212286d0a150, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords:
|
||||
- BAKERY_MODE_NONE
|
||||
- VOLUME_SHADOWMASK
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BakeryLitBase_7a7bbda58bdbe88b9878b358f4a19616_Smoothnessmap_1619280207_Texture2D:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BakeryLitBase_7a7bbda58bdbe88b9878b358f4a19616_Specularmap_3317505707_Texture2D:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _BumpMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailAlbedoMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailMask:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _DetailNormalMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _EmissionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MainTex:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _MetallicGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _OcclusionMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _ParallaxMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Smoothness_map:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _Specular_map:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- BAKERY_COMPRESSED_VOLUME: 0
|
||||
- BAKERY_LMSPEC: 0
|
||||
- BAKERY_MODE: 0
|
||||
- VOLUME_SHADOWMASK: 1
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _CastShadows: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Lightmap_specular_as_reflection_occlusion: 0
|
||||
- _Metallic: 0
|
||||
- _Normal_map_power: 1
|
||||
- _OcclusionStrength: 1
|
||||
- _Occlusion_map_power: 1
|
||||
- _PER_VERTEX: 0
|
||||
- _Parallax: 0.005
|
||||
- _QueueControl: 0
|
||||
- _QueueOffset: 0
|
||||
- _REFLECTIONS: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.5
|
||||
- _SmoothnessFromMetallic: 0
|
||||
- _SmoothnessSource: 0
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecOcclusionParamsInvZ: 0.3
|
||||
- _SpecOcclusionParamsX: 2
|
||||
- _SpecOcclusionParamsY: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _SupportBakedVolumeRotation: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _ZTest: 4
|
||||
- _ZWrite: 1
|
||||
- _ZWriteControl: 0
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
- _Specular_color: {r: 0, g: 0, b: 0, a: 0}
|
||||
- _Tiling_and_offset: {r: 1, g: 1, b: 0, a: 0}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9403e023e1ff61b4f9dbd0d77f1f4148
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -276,8 +276,8 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
spawnCenter: {x: 0, y: 1, z: 0}
|
||||
spawnRadius: 1
|
||||
edgePadding: 0.75
|
||||
heightAboveFloor: 0.15
|
||||
--- !u!114 &5032171862004131710
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 82113aa5aa0ce154ab2a27bdda00cdbc
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b0c79cebdb4201743be8612545ee180e, type: 3}
|
||||
m_Name: Rocket-Back-Standart-Ready
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-back-standart-ready
|
||||
displayName: Rocket-Back-Standart-Ready
|
||||
category: 2
|
||||
worldPrefab: {fileID: 5195529150077527847, guid: ea8e439364ce6aa4dab3586bae0edfed, type: 3}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 203427fd9de0c514887bec7c046a6f69
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b0c79cebdb4201743be8612545ee180e, type: 3}
|
||||
m_Name: Rocket-Base-Avia-Ready
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-base-avia-ready
|
||||
displayName: Rocket-Base-Avia-Ready
|
||||
category: 2
|
||||
worldPrefab: {fileID: 1256934312238460503, guid: 9712e2459410a6d43b55ea9d3847e29a, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: aab26561f7a9b424b9262c0d07151638
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b0c79cebdb4201743be8612545ee180e, type: 3}
|
||||
m_Name: Rocket-Base-Standart-Ready
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-base-standart-ready
|
||||
displayName: Rocket-Base-Standart-Ready
|
||||
category: 2
|
||||
worldPrefab: {fileID: 875723161486981202, guid: 6e681ca5358fff648ba85ae9e494fa77, type: 3}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 218df70f83b5574428eb2159664b9b6e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b0c79cebdb4201743be8612545ee180e, type: 3}
|
||||
m_Name: Rocket-Cone-Standart-Ready
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-cone-standart-ready
|
||||
displayName: Rocket-Cone-Standart-Ready
|
||||
category: 2
|
||||
worldPrefab: {fileID: 7151289907260619783, guid: a31204f69b185d54ab9e12b0a3a1e98b, type: 3}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a97b695af4781b34fa8cab9a97ba9d9d
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -14,6 +14,10 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
items:
|
||||
- {fileID: 11400000, guid: b9e34349c67bdcf4f9ba3fc7655b9dac, type: 2}
|
||||
- {fileID: 11400000, guid: 203427fd9de0c514887bec7c046a6f69, type: 2}
|
||||
- {fileID: 11400000, guid: e6fdb55d6695e0f4a919bcfbc6bf5ab9, type: 2}
|
||||
- {fileID: 11400000, guid: aab26561f7a9b424b9262c0d07151638, type: 2}
|
||||
- {fileID: 11400000, guid: d3938024cd4dd964e804af02917917b2, type: 2}
|
||||
- {fileID: 11400000, guid: 218df70f83b5574428eb2159664b9b6e, type: 2}
|
||||
- {fileID: 11400000, guid: 57d611457f6826f46972c33527ddda60, type: 2}
|
||||
- {fileID: 11400000, guid: a97b695af4781b34fa8cab9a97ba9d9d, type: 2}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a6169d69297262f42bb2f29773d8e443
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+1
-1
@@ -12,7 +12,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Back-Standart
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: back-standart
|
||||
recipeId: furnance-back-standart
|
||||
displayName: Back-Standart
|
||||
outputItem: {fileID: 11400000, guid: b9e34349c67bdcf4f9ba3fc7655b9dac, type: 2}
|
||||
outputAmount: 1
|
||||
+1
-1
@@ -12,7 +12,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Base-Avia
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: base-avia
|
||||
recipeId: furnance-base-avia
|
||||
displayName: Base-Avia
|
||||
outputItem: {fileID: 11400000, guid: e6fdb55d6695e0f4a919bcfbc6bf5ab9, type: 2}
|
||||
outputAmount: 1
|
||||
+1
-1
@@ -12,7 +12,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Base-Standart
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: base-standart
|
||||
recipeId: furnance-base-standart
|
||||
displayName: Base-Standart
|
||||
outputItem: {fileID: 11400000, guid: d3938024cd4dd964e804af02917917b2, type: 2}
|
||||
outputAmount: 1
|
||||
+1
-1
@@ -12,7 +12,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Cone-Standart
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: cone-standart
|
||||
recipeId: furnance-cone-standart
|
||||
displayName: Cone-Standart
|
||||
outputItem: {fileID: 11400000, guid: 57d611457f6826f46972c33527ddda60, type: 2}
|
||||
outputAmount: 1
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 403147d6dd4b2e940bc8bf8db0af109b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ea07d1502f6f4abc96ea949c7e688857, type: 3}
|
||||
m_Name: Recipe-Back-Standart-Ready
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: processed-base-standart
|
||||
inputItem: {fileID: 11400000, guid: b9e34349c67bdcf4f9ba3fc7655b9dac, type: 2}
|
||||
outputItem: {fileID: 11400000, guid: 203427fd9de0c514887bec7c046a6f69, type: 2}
|
||||
processingDuration: 10
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5400dc52dd67d4543a95f871c7360304
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ea07d1502f6f4abc96ea949c7e688857, type: 3}
|
||||
m_Name: Recipe-Base-Avia-Ready
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: processed-back-avia
|
||||
inputItem: {fileID: 11400000, guid: e6fdb55d6695e0f4a919bcfbc6bf5ab9, type: 2}
|
||||
outputItem: {fileID: 11400000, guid: aab26561f7a9b424b9262c0d07151638, type: 2}
|
||||
processingDuration: 10
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cba7cf55d3f4ad442b1c220674e57be7
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ea07d1502f6f4abc96ea949c7e688857, type: 3}
|
||||
m_Name: Recipe-Base-Standart-Ready
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: processed-back-standart
|
||||
inputItem: {fileID: 11400000, guid: d3938024cd4dd964e804af02917917b2, type: 2}
|
||||
outputItem: {fileID: 11400000, guid: 218df70f83b5574428eb2159664b9b6e, type: 2}
|
||||
processingDuration: 10
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c61c5a6a9402ddb45ad5d0eb369d4475
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ea07d1502f6f4abc96ea949c7e688857, type: 3}
|
||||
m_Name: Recipe-Cone-Standart-Ready
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: processed-cone-standart
|
||||
inputItem: {fileID: 11400000, guid: 57d611457f6826f46972c33527ddda60, type: 2}
|
||||
outputItem: {fileID: 11400000, guid: a97b695af4781b34fa8cab9a97ba9d9d, type: 2}
|
||||
processingDuration: 10
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 043fa7be6627da64f815afea63379f89
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a1c52539b69a4f40b898f08c94c83c6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 13c0b41f355d72c4da1b88bec17901ac
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+1753
File diff suppressed because it is too large
Load Diff
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ea8e439364ce6aa4dab3586bae0edfed
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 033239ea2c28a8f4e8a5896663eecaca
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+1033
File diff suppressed because it is too large
Load Diff
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 101ea854d65f59f4f98b57bac6bad504
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+1032
File diff suppressed because it is too large
Load Diff
+7
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0690a926ec2b8d5498fd25633af436e1
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+6
-3
@@ -1459,7 +1459,7 @@ MonoBehaviour:
|
||||
m_PreserveMeshAssetOnDestroy: 0
|
||||
assetGuid:
|
||||
m_Mesh: {fileID: 0}
|
||||
m_VersionIndex: 3660
|
||||
m_VersionIndex: 3666
|
||||
m_IsSelectable: 1
|
||||
m_SelectedFaces:
|
||||
m_SelectedEdges: []
|
||||
@@ -1574,7 +1574,7 @@ Rigidbody:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3050509638399781712}
|
||||
serializedVersion: 4
|
||||
m_Mass: 75
|
||||
m_Mass: 20
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
@@ -1697,13 +1697,16 @@ MonoBehaviour:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
interactionLabel: Interact
|
||||
maximumInteractionDistance: 3
|
||||
weight: 75
|
||||
weight: 20
|
||||
pullStrengthPerPlayer: 50
|
||||
maximumDraggers: 2
|
||||
dragOffset: {x: 0, y: 1, z: 1.8}
|
||||
maximumDragSpeed: 3
|
||||
minimumSpeedMultiplier: 0.35
|
||||
maximumDraggerDistance: 4.5
|
||||
positionSmoothTime: 0.12
|
||||
rotationFollowSpeed: 8
|
||||
rotationOffset: {x: 0, y: 0, z: 0}
|
||||
movementMode: 0
|
||||
groundLayers:
|
||||
serializedVersion: 2
|
||||
+5
-2
@@ -1406,7 +1406,7 @@ Rigidbody:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8393852851809890045}
|
||||
serializedVersion: 4
|
||||
m_Mass: 35
|
||||
m_Mass: 20
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
@@ -1529,13 +1529,16 @@ MonoBehaviour:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
interactionLabel: Interact
|
||||
maximumInteractionDistance: 3
|
||||
weight: 35
|
||||
weight: 20
|
||||
pullStrengthPerPlayer: 50
|
||||
maximumDraggers: 2
|
||||
dragOffset: {x: 0, y: 1, z: 1.8}
|
||||
maximumDragSpeed: 3
|
||||
minimumSpeedMultiplier: 0.35
|
||||
maximumDraggerDistance: 4.5
|
||||
positionSmoothTime: 0.12
|
||||
rotationFollowSpeed: 8
|
||||
rotationOffset: {x: 0, y: 0, z: 0}
|
||||
movementMode: 0
|
||||
groundLayers:
|
||||
serializedVersion: 2
|
||||
+5
-2
@@ -854,7 +854,7 @@ Rigidbody:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2074462948060523628}
|
||||
serializedVersion: 4
|
||||
m_Mass: 35
|
||||
m_Mass: 20
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
@@ -977,13 +977,16 @@ MonoBehaviour:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
interactionLabel: Interact
|
||||
maximumInteractionDistance: 3
|
||||
weight: 35
|
||||
weight: 20
|
||||
pullStrengthPerPlayer: 50
|
||||
maximumDraggers: 2
|
||||
dragOffset: {x: 0, y: 1, z: 1.8}
|
||||
maximumDragSpeed: 3
|
||||
minimumSpeedMultiplier: 0.35
|
||||
maximumDraggerDistance: 4.5
|
||||
positionSmoothTime: 0.12
|
||||
rotationFollowSpeed: 8
|
||||
rotationOffset: {x: 0, y: 0, z: 0}
|
||||
movementMode: 0
|
||||
groundLayers:
|
||||
serializedVersion: 2
|
||||
+5
-2
@@ -853,7 +853,7 @@ Rigidbody:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5498288413617640318}
|
||||
serializedVersion: 4
|
||||
m_Mass: 35
|
||||
m_Mass: 20
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
@@ -976,13 +976,16 @@ MonoBehaviour:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
interactionLabel: Interact
|
||||
maximumInteractionDistance: 3
|
||||
weight: 35
|
||||
weight: 20
|
||||
pullStrengthPerPlayer: 50
|
||||
maximumDraggers: 2
|
||||
dragOffset: {x: 0, y: 1, z: 1.8}
|
||||
maximumDragSpeed: 3
|
||||
minimumSpeedMultiplier: 0.35
|
||||
maximumDraggerDistance: 4.5
|
||||
positionSmoothTime: 0.12
|
||||
rotationFollowSpeed: 8
|
||||
rotationOffset: {x: 0, y: 0, z: 0}
|
||||
movementMode: 0
|
||||
groundLayers:
|
||||
serializedVersion: 2
|
||||
@@ -12,9 +12,10 @@ public enum DraggableMovementMode
|
||||
}
|
||||
|
||||
[RequireComponent(typeof(Rigidbody), typeof(NetworkRigidbody))]
|
||||
public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
public sealed class NetworkDraggableInteractable : NetworkInteractable, IWorkstationItemControl
|
||||
{
|
||||
private const ulong NoDragger = ulong.MaxValue;
|
||||
private static readonly HashSet<NetworkDraggableInteractable> SpawnedDraggables = new();
|
||||
|
||||
[Header("Weight")]
|
||||
[SerializeField, Min(0.1f)] private float weight = 35f;
|
||||
@@ -59,6 +60,11 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
NetworkVariableReadPermission.Everyone,
|
||||
NetworkVariableWritePermission.Server);
|
||||
|
||||
private readonly NetworkVariable<bool> isExternallyControlled = new(
|
||||
false,
|
||||
NetworkVariableReadPermission.Everyone,
|
||||
NetworkVariableWritePermission.Server);
|
||||
|
||||
private readonly HashSet<Collider> ignoredPlayerColliders = new();
|
||||
private readonly RaycastHit[] groundHits = new RaycastHit[16];
|
||||
private float nextCollisionRefreshTime;
|
||||
@@ -79,6 +85,7 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
}
|
||||
public int RequiredDraggerCount => Mathf.Max(1, Mathf.CeilToInt(weight / pullStrengthPerPlayer));
|
||||
public bool HasEnoughPullStrength => ActiveDraggerCount >= RequiredDraggerCount;
|
||||
public bool IsExternallyControlled => isExternallyControlled.Value;
|
||||
|
||||
private bool HasAnyDragger => ActiveDraggerCount > 0;
|
||||
private bool IsDraggedByLocalPlayer =>
|
||||
@@ -88,6 +95,9 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
{
|
||||
get
|
||||
{
|
||||
if (IsExternallyControlled)
|
||||
return "In machine";
|
||||
|
||||
if (IsDraggedByLocalPlayer)
|
||||
return "Release";
|
||||
|
||||
@@ -105,7 +115,11 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
}
|
||||
|
||||
public override bool IsInteractionAvailable => base.IsInteractionAvailable &&
|
||||
(IsDraggedByLocalPlayer || ActiveDraggerCount < maximumDraggers);
|
||||
!IsExternallyControlled &&
|
||||
(IsDraggedByLocalPlayer ||
|
||||
(ActiveDraggerCount < maximumDraggers &&
|
||||
(NetworkManager == null ||
|
||||
!TryGetDraggedObject(NetworkManager.LocalClientId, this, out _))));
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -121,15 +135,19 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
|
||||
public override void OnNetworkSpawn()
|
||||
{
|
||||
SpawnedDraggables.Add(this);
|
||||
firstDraggerClientId.OnValueChanged += HandleDraggerChanged;
|
||||
secondDraggerClientId.OnValueChanged += HandleDraggerChanged;
|
||||
isExternallyControlled.OnValueChanged += HandleExternalControlChanged;
|
||||
ApplyDraggingState();
|
||||
}
|
||||
|
||||
public override void OnNetworkDespawn()
|
||||
{
|
||||
SpawnedDraggables.Remove(this);
|
||||
firstDraggerClientId.OnValueChanged -= HandleDraggerChanged;
|
||||
secondDraggerClientId.OnValueChanged -= HandleDraggerChanged;
|
||||
isExternallyControlled.OnValueChanged -= HandleExternalControlChanged;
|
||||
RestorePlayerCollisions();
|
||||
}
|
||||
|
||||
@@ -144,7 +162,7 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
if (!IsServer || !IsSpawned || physicsBody == null)
|
||||
if (!IsServer || !IsSpawned || physicsBody == null || IsExternallyControlled)
|
||||
return;
|
||||
|
||||
RemoveInvalidDraggers();
|
||||
@@ -177,9 +195,17 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool CanInteractOnServer(ulong senderClientId) =>
|
||||
IsDragger(senderClientId) ||
|
||||
ActiveDraggerCount < maximumDraggers;
|
||||
protected override bool CanInteractOnServer(ulong senderClientId)
|
||||
{
|
||||
if (IsExternallyControlled)
|
||||
return false;
|
||||
|
||||
if (IsDragger(senderClientId))
|
||||
return true;
|
||||
|
||||
return ActiveDraggerCount < maximumDraggers &&
|
||||
!TryGetDraggedObject(senderClientId, this, out _);
|
||||
}
|
||||
|
||||
protected override void InteractOnServer(ulong senderClientId, NetworkObject playerObject)
|
||||
{
|
||||
@@ -191,6 +217,9 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
|
||||
private void AddDragger(ulong clientId)
|
||||
{
|
||||
if (IsExternallyControlled || TryGetDraggedObject(clientId, this, out _))
|
||||
return;
|
||||
|
||||
if (firstDraggerClientId.Value == NoDragger)
|
||||
firstDraggerClientId.Value = clientId;
|
||||
else if (maximumDraggers > 1 && secondDraggerClientId.Value == NoDragger)
|
||||
@@ -265,19 +294,78 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
if (clientId == NoDragger || !TryGetPlayerObject(clientId, out NetworkObject playerObject))
|
||||
return;
|
||||
|
||||
Transform dragAnchor = ResolveDragAnchor(playerObject);
|
||||
target += dragAnchor.TransformPoint(dragOffset);
|
||||
forward += dragAnchor.forward;
|
||||
FirstPersonCameraController cameraController =
|
||||
playerObject.GetComponent<FirstPersonCameraController>();
|
||||
Vector3 aimForward = cameraController != null
|
||||
? cameraController.AimForward
|
||||
: playerObject.transform.forward;
|
||||
|
||||
target += playerObject.transform.position +
|
||||
playerObject.transform.right * dragOffset.x +
|
||||
Vector3.up * dragOffset.y +
|
||||
aimForward * dragOffset.z;
|
||||
forward += aimForward;
|
||||
validTargets++;
|
||||
}
|
||||
|
||||
private static Transform ResolveDragAnchor(NetworkObject playerObject)
|
||||
private static bool TryGetDraggedObject(
|
||||
ulong clientId,
|
||||
NetworkDraggableInteractable except,
|
||||
out NetworkDraggableInteractable draggedObject)
|
||||
{
|
||||
FirstPersonCameraController cameraController =
|
||||
playerObject.GetComponent<FirstPersonCameraController>();
|
||||
return cameraController != null
|
||||
? cameraController.AimTransform
|
||||
: playerObject.transform;
|
||||
foreach (NetworkDraggableInteractable candidate in SpawnedDraggables)
|
||||
{
|
||||
if (candidate != null && candidate != except && candidate.IsDragger(clientId))
|
||||
{
|
||||
draggedObject = candidate;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
draggedObject = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
public static bool TryGetDraggedObject(
|
||||
ulong clientId,
|
||||
out NetworkDraggableInteractable draggedObject) =>
|
||||
TryGetDraggedObject(clientId, null, out draggedObject);
|
||||
|
||||
public void RequestRelease()
|
||||
{
|
||||
if (IsSpawned && IsDraggedByLocalPlayer)
|
||||
RequestReleaseRpc();
|
||||
}
|
||||
|
||||
public bool TryAcquireExternalControl()
|
||||
{
|
||||
if (!IsServer || !IsSpawned || IsExternallyControlled)
|
||||
return false;
|
||||
|
||||
isExternallyControlled.Value = true;
|
||||
|
||||
firstDraggerClientId.Value = NoDragger;
|
||||
secondDraggerClientId.Value = NoDragger;
|
||||
ApplyDraggingState();
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool TryReleaseExternalControl()
|
||||
{
|
||||
if (!IsServer || !IsSpawned || !IsExternallyControlled)
|
||||
return false;
|
||||
|
||||
isExternallyControlled.Value = false;
|
||||
ApplyDraggingState();
|
||||
return true;
|
||||
}
|
||||
|
||||
[Rpc(SendTo.Server, InvokePermission = RpcInvokePermission.Everyone)]
|
||||
private void RequestReleaseRpc(RpcParams rpcParams = default)
|
||||
{
|
||||
ulong senderClientId = rpcParams.Receive.SenderClientId;
|
||||
if (!IsExternallyControlled && IsDragger(senderClientId))
|
||||
RemoveDragger(senderClientId);
|
||||
}
|
||||
|
||||
private bool IsDragger(ulong clientId) =>
|
||||
@@ -285,11 +373,13 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
|
||||
private void HandleDraggerChanged(ulong _, ulong __) => ApplyDraggingState();
|
||||
|
||||
private void HandleExternalControlChanged(bool _, bool __) => ApplyDraggingState();
|
||||
|
||||
private void ApplyDraggingState()
|
||||
{
|
||||
if (physicsBody != null)
|
||||
{
|
||||
bool shouldBeKinematic = HasAnyDragger || !IsServer;
|
||||
bool shouldBeKinematic = HasAnyDragger || IsExternallyControlled || !IsServer;
|
||||
|
||||
if (physicsBody.isKinematic && !shouldBeKinematic)
|
||||
physicsBody.isKinematic = false;
|
||||
@@ -303,7 +393,7 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
physicsBody.isKinematic = shouldBeKinematic;
|
||||
}
|
||||
|
||||
if (HasAnyDragger)
|
||||
if (HasAnyDragger || IsExternallyControlled)
|
||||
{
|
||||
dragVelocity = Vector3.zero;
|
||||
CacheGroundContactPoint();
|
||||
|
||||
@@ -4,7 +4,7 @@ using Unity.Netcode.Components;
|
||||
using UnityEngine;
|
||||
|
||||
[RequireComponent(typeof(Rigidbody), typeof(NetworkRigidbody))]
|
||||
public abstract class NetworkHeldInteractable : NetworkInteractable
|
||||
public abstract class NetworkHeldInteractable : NetworkInteractable, IWorkstationItemControl
|
||||
{
|
||||
protected const ulong NoHolder = ulong.MaxValue;
|
||||
private static readonly HashSet<NetworkHeldInteractable> SpawnedHeldObjects = new();
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
public interface IWorkstationItemControl
|
||||
{
|
||||
bool TryAcquireExternalControl();
|
||||
bool TryReleaseExternalControl();
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b32c69f6645bac8499f4e8e068e84034
|
||||
@@ -16,12 +16,22 @@ public sealed class PlayerCarryController : NetworkBehaviour, IPlayerSystem
|
||||
if (!isInitialized || !IsOwner || Keyboard.current == null)
|
||||
return;
|
||||
|
||||
if (Keyboard.current.gKey.wasPressedThisFrame &&
|
||||
NetworkHeldInteractable.TryGetHeldObject(
|
||||
if (!Keyboard.current.gKey.wasPressedThisFrame)
|
||||
return;
|
||||
|
||||
if (NetworkHeldInteractable.TryGetHeldObject(
|
||||
OwnerClientId,
|
||||
out NetworkHeldInteractable heldObject))
|
||||
{
|
||||
heldObject.RequestThrow();
|
||||
return;
|
||||
}
|
||||
|
||||
if (NetworkDraggableInteractable.TryGetDraggedObject(
|
||||
OwnerClientId,
|
||||
out NetworkDraggableInteractable draggedObject))
|
||||
{
|
||||
draggedObject.RequestRelease();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,43 +1,116 @@
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public sealed class PlayerSpawnController : NetworkBehaviour, IPlayerSystem
|
||||
{
|
||||
[Header("Random spawn area")]
|
||||
[SerializeField] private Vector3 spawnCenter = new(0f, 1f, 0f);
|
||||
[SerializeField, Min(0f)] private float spawnRadius = 8f;
|
||||
[Header("Start Room Spawn")]
|
||||
[SerializeField, Min(0f)] private float edgePadding = 0.75f;
|
||||
[SerializeField, Min(0f)] private float heightAboveFloor = 0.15f;
|
||||
|
||||
private readonly NetworkVariable<Vector3> assignedSpawnPosition = new(
|
||||
Vector3.zero,
|
||||
NetworkVariableReadPermission.Everyone,
|
||||
NetworkVariableWritePermission.Server);
|
||||
|
||||
private readonly NetworkVariable<bool> hasAssignedSpawnPosition = new(
|
||||
false,
|
||||
NetworkVariableReadPermission.Everyone,
|
||||
NetworkVariableWritePermission.Server);
|
||||
|
||||
private int assignedSceneHandle = -1;
|
||||
|
||||
public void Initialize(PlayerFacade facade) { }
|
||||
|
||||
public override void OnNetworkSpawn()
|
||||
{
|
||||
assignedSpawnPosition.OnValueChanged += HandleSpawnPositionChanged;
|
||||
hasAssignedSpawnPosition.OnValueChanged += HandleSpawnAssignmentChanged;
|
||||
SceneManager.sceneLoaded += HandleSceneLoaded;
|
||||
|
||||
if (IsServer)
|
||||
{
|
||||
Vector2 randomOffset = Random.insideUnitCircle * spawnRadius;
|
||||
assignedSpawnPosition.Value = spawnCenter + new Vector3(randomOffset.x, 0f, randomOffset.y);
|
||||
}
|
||||
TryAssignStartRoomPosition(SceneManager.GetActiveScene());
|
||||
|
||||
ApplySpawnPosition(assignedSpawnPosition.Value);
|
||||
if (hasAssignedSpawnPosition.Value)
|
||||
ApplySpawnPosition(assignedSpawnPosition.Value);
|
||||
}
|
||||
|
||||
public override void OnNetworkDespawn()
|
||||
{
|
||||
assignedSpawnPosition.OnValueChanged -= HandleSpawnPositionChanged;
|
||||
hasAssignedSpawnPosition.OnValueChanged -= HandleSpawnAssignmentChanged;
|
||||
SceneManager.sceneLoaded -= HandleSceneLoaded;
|
||||
}
|
||||
|
||||
private void HandleSpawnPositionChanged(Vector3 _, Vector3 position) =>
|
||||
ApplySpawnPosition(position);
|
||||
private void HandleSceneLoaded(Scene scene, LoadSceneMode _)
|
||||
{
|
||||
if (IsServer)
|
||||
TryAssignStartRoomPosition(scene);
|
||||
|
||||
if (IsOwner && hasAssignedSpawnPosition.Value)
|
||||
ApplySpawnPosition(assignedSpawnPosition.Value);
|
||||
}
|
||||
|
||||
private void TryAssignStartRoomPosition(Scene scene)
|
||||
{
|
||||
if (!scene.IsValid() || !scene.isLoaded || scene.handle == assignedSceneHandle)
|
||||
return;
|
||||
|
||||
StartRoomZone startRoom = FindStartRoomInScene(scene);
|
||||
if (startRoom == null ||
|
||||
!startRoom.TryGetRandomSpawnPosition(
|
||||
edgePadding,
|
||||
heightAboveFloor,
|
||||
out Vector3 position))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
hasAssignedSpawnPosition.Value = false;
|
||||
assignedSpawnPosition.Value = position;
|
||||
hasAssignedSpawnPosition.Value = true;
|
||||
assignedSceneHandle = scene.handle;
|
||||
}
|
||||
|
||||
private static StartRoomZone FindStartRoomInScene(Scene scene)
|
||||
{
|
||||
foreach (GameObject rootObject in scene.GetRootGameObjects())
|
||||
{
|
||||
StartRoomZone startRoom = rootObject.GetComponentInChildren<StartRoomZone>(true);
|
||||
if (startRoom != null)
|
||||
return startRoom;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void HandleSpawnPositionChanged(Vector3 _, Vector3 position)
|
||||
{
|
||||
if (hasAssignedSpawnPosition.Value)
|
||||
ApplySpawnPosition(position);
|
||||
}
|
||||
|
||||
private void HandleSpawnAssignmentChanged(bool _, bool isAssigned)
|
||||
{
|
||||
if (isAssigned)
|
||||
ApplySpawnPosition(assignedSpawnPosition.Value);
|
||||
}
|
||||
|
||||
private void ApplySpawnPosition(Vector3 position)
|
||||
{
|
||||
if (IsOwner)
|
||||
transform.position = position;
|
||||
if (!IsOwner)
|
||||
return;
|
||||
|
||||
CharacterController characterController = GetComponent<CharacterController>();
|
||||
bool restoreCharacterController = characterController != null && characterController.enabled;
|
||||
|
||||
if (restoreCharacterController)
|
||||
characterController.enabled = false;
|
||||
|
||||
transform.position = position;
|
||||
Physics.SyncTransforms();
|
||||
|
||||
if (restoreCharacterController)
|
||||
characterController.enabled = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ public sealed class StartRoomZone : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Collider roomCollider;
|
||||
|
||||
public Collider RoomCollider => roomCollider;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (roomCollider == null)
|
||||
@@ -14,6 +16,56 @@ public sealed class StartRoomZone : MonoBehaviour
|
||||
public bool Contains(Vector3 worldPosition) =>
|
||||
roomCollider != null && roomCollider.bounds.Contains(worldPosition);
|
||||
|
||||
public bool TryGetRandomSpawnPosition(
|
||||
float edgePadding,
|
||||
float heightAboveFloor,
|
||||
out Vector3 position)
|
||||
{
|
||||
if (roomCollider == null)
|
||||
{
|
||||
position = default;
|
||||
return false;
|
||||
}
|
||||
|
||||
edgePadding = Mathf.Max(0f, edgePadding);
|
||||
heightAboveFloor = Mathf.Max(0f, heightAboveFloor);
|
||||
|
||||
if (roomCollider is BoxCollider boxCollider)
|
||||
{
|
||||
Vector3 lossyScale = boxCollider.transform.lossyScale;
|
||||
float localPaddingX = edgePadding / Mathf.Max(Mathf.Abs(lossyScale.x), 0.0001f);
|
||||
float localPaddingZ = edgePadding / Mathf.Max(Mathf.Abs(lossyScale.z), 0.0001f);
|
||||
Vector3 halfSize = boxCollider.size * 0.5f;
|
||||
float availableX = Mathf.Max(0f, halfSize.x - localPaddingX);
|
||||
float availableZ = Mathf.Max(0f, halfSize.z - localPaddingZ);
|
||||
Vector3 localPosition = boxCollider.center + new Vector3(
|
||||
Random.Range(-availableX, availableX),
|
||||
-halfSize.y,
|
||||
Random.Range(-availableZ, availableZ));
|
||||
|
||||
position = boxCollider.transform.TransformPoint(localPosition) +
|
||||
Vector3.up * heightAboveFloor;
|
||||
return true;
|
||||
}
|
||||
|
||||
Bounds bounds = roomCollider.bounds;
|
||||
float minX = bounds.min.x + edgePadding;
|
||||
float maxX = bounds.max.x - edgePadding;
|
||||
float minZ = bounds.min.z + edgePadding;
|
||||
float maxZ = bounds.max.z - edgePadding;
|
||||
|
||||
if (minX > maxX)
|
||||
minX = maxX = bounds.center.x;
|
||||
if (minZ > maxZ)
|
||||
minZ = maxZ = bounds.center.z;
|
||||
|
||||
position = new Vector3(
|
||||
Random.Range(minX, maxX),
|
||||
bounds.min.y + heightAboveFloor,
|
||||
Random.Range(minZ, maxZ));
|
||||
return true;
|
||||
}
|
||||
|
||||
private void OnDrawGizmosSelected()
|
||||
{
|
||||
Collider targetCollider = roomCollider != null ? roomCollider : GetComponent<Collider>();
|
||||
|
||||
+92
-18
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -11,8 +12,8 @@ public enum ItemProcessingWorkstationState : byte
|
||||
|
||||
public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationController
|
||||
{
|
||||
[Header("Recipe")]
|
||||
[SerializeField] private ItemProcessingRecipe recipe;
|
||||
[Header("Recipes")]
|
||||
[SerializeField] private List<ItemProcessingRecipe> recipes = new();
|
||||
|
||||
[Header("Slot")]
|
||||
[SerializeField] private Transform inputPoint;
|
||||
@@ -32,16 +33,27 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
NetworkVariableReadPermission.Everyone,
|
||||
NetworkVariableWritePermission.Server);
|
||||
|
||||
private readonly NetworkVariable<int> activeRecipeIndex = new(
|
||||
-1,
|
||||
NetworkVariableReadPermission.Everyone,
|
||||
NetworkVariableWritePermission.Server);
|
||||
|
||||
private NetworkItem currentItem;
|
||||
private IWorkstationItemControl currentItemControl;
|
||||
|
||||
public override bool IsOperating => State == ItemProcessingWorkstationState.Processing;
|
||||
public ItemProcessingWorkstationState State => state.Value;
|
||||
public ItemProcessingRecipe Recipe => recipe;
|
||||
public IReadOnlyList<ItemProcessingRecipe> Recipes => recipes;
|
||||
public int ActiveRecipeIndex => activeRecipeIndex.Value;
|
||||
public ItemProcessingRecipe ActiveRecipe => TryGetRecipe(
|
||||
activeRecipeIndex.Value,
|
||||
out ItemProcessingRecipe recipe)
|
||||
? recipe
|
||||
: null;
|
||||
public NetworkItem CurrentItem => currentItem;
|
||||
public bool CanAcceptItem => IsServer && IsSpawned &&
|
||||
State == ItemProcessingWorkstationState.Empty &&
|
||||
recipe != null && recipe.InputItem != null &&
|
||||
recipe.OutputItem != null && recipe.OutputItem.WorldPrefab != null;
|
||||
recipes.Exists(IsRecipeValid);
|
||||
|
||||
public float ProcessProgress
|
||||
{
|
||||
@@ -72,6 +84,7 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
state.OnValueChanged += HandleStateChanged;
|
||||
processStartedAt.OnValueChanged += HandleProcessTimeChanged;
|
||||
processEndsAt.OnValueChanged += HandleProcessTimeChanged;
|
||||
activeRecipeIndex.OnValueChanged += HandleActiveRecipeChanged;
|
||||
|
||||
if (IsServer)
|
||||
ResetWorkstationOnServer();
|
||||
@@ -84,6 +97,7 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
state.OnValueChanged -= HandleStateChanged;
|
||||
processStartedAt.OnValueChanged -= HandleProcessTimeChanged;
|
||||
processEndsAt.OnValueChanged -= HandleProcessTimeChanged;
|
||||
activeRecipeIndex.OnValueChanged -= HandleActiveRecipeChanged;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@@ -123,15 +137,19 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
|
||||
public bool TryAcceptItem(NetworkItem item)
|
||||
{
|
||||
if (!CanAcceptItem || item == null || !item.IsSpawned || !recipe.Accepts(item))
|
||||
if (!CanAcceptItem || item == null || !item.IsSpawned ||
|
||||
!TryFindRecipe(item, out int recipeIndex, out ItemProcessingRecipe recipe) ||
|
||||
!TryGetItemControl(item, out IWorkstationItemControl itemControl))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
NetworkCarryableInteractable carryable =
|
||||
item.GetComponent<NetworkCarryableInteractable>();
|
||||
if (carryable == null || !carryable.TryAcquireExternalControl())
|
||||
if (!itemControl.TryAcquireExternalControl())
|
||||
return false;
|
||||
|
||||
currentItem = item;
|
||||
currentItemControl = itemControl;
|
||||
activeRecipeIndex.Value = recipeIndex;
|
||||
SnapToInputPoint(item.transform);
|
||||
|
||||
double now = GetNetworkTime();
|
||||
@@ -156,6 +174,7 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
|
||||
private void CompleteProcessingOnServer()
|
||||
{
|
||||
ItemProcessingRecipe recipe = ActiveRecipe;
|
||||
if (currentItem == null || recipe == null ||
|
||||
recipe.OutputItem == null || recipe.OutputItem.WorldPrefab == null)
|
||||
{
|
||||
@@ -169,6 +188,7 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
|
||||
NetworkObject inputObject = currentItem.NetworkObject;
|
||||
currentItem = null;
|
||||
currentItemControl = null;
|
||||
|
||||
if (inputObject != null && inputObject.IsSpawned)
|
||||
inputObject.Despawn(true);
|
||||
@@ -180,13 +200,12 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
outputObject.Spawn();
|
||||
|
||||
currentItem = outputObject.GetComponent<NetworkItem>();
|
||||
if (currentItem == null ||
|
||||
outputObject.GetComponent<NetworkCarryableInteractable>() == null)
|
||||
if (currentItem == null || !TryGetItemControl(currentItem, out _))
|
||||
{
|
||||
Debug.LogError(
|
||||
$"{name} cannot produce '{recipe.OutputItem.DisplayName}': " +
|
||||
"the output prefab must contain NetworkItem and " +
|
||||
"NetworkCarryableInteractable.",
|
||||
"the output prefab must contain NetworkItem and a supported " +
|
||||
"Carry or Drag interaction component.",
|
||||
this);
|
||||
outputObject.Despawn(true);
|
||||
currentItem = null;
|
||||
@@ -205,13 +224,12 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
if (!IsServer)
|
||||
return;
|
||||
|
||||
if (State == ItemProcessingWorkstationState.Processing && currentItem != null &&
|
||||
currentItem.TryGetComponent(out NetworkCarryableInteractable carryable))
|
||||
{
|
||||
carryable.TryReleaseExternalControl();
|
||||
}
|
||||
if (State == ItemProcessingWorkstationState.Processing && currentItemControl != null)
|
||||
currentItemControl.TryReleaseExternalControl();
|
||||
|
||||
currentItem = null;
|
||||
currentItemControl = null;
|
||||
activeRecipeIndex.Value = -1;
|
||||
processStartedAt.Value = 0d;
|
||||
processEndsAt.Value = 0d;
|
||||
state.Value = ItemProcessingWorkstationState.Empty;
|
||||
@@ -233,4 +251,60 @@ public sealed class NetworkItemProcessingWorkstation : NetworkWorkstationControl
|
||||
ItemProcessingWorkstationState __) => Changed?.Invoke();
|
||||
|
||||
private void HandleProcessTimeChanged(double _, double __) => Changed?.Invoke();
|
||||
|
||||
private void HandleActiveRecipeChanged(int _, int __) => Changed?.Invoke();
|
||||
|
||||
private bool TryFindRecipe(
|
||||
NetworkItem item,
|
||||
out int recipeIndex,
|
||||
out ItemProcessingRecipe recipe)
|
||||
{
|
||||
for (int index = 0; index < recipes.Count; index++)
|
||||
{
|
||||
ItemProcessingRecipe candidate = recipes[index];
|
||||
if (IsRecipeValid(candidate) && candidate.Accepts(item))
|
||||
{
|
||||
recipeIndex = index;
|
||||
recipe = candidate;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
recipeIndex = -1;
|
||||
recipe = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool TryGetRecipe(int index, out ItemProcessingRecipe recipe)
|
||||
{
|
||||
if (index >= 0 && index < recipes.Count && IsRecipeValid(recipes[index]))
|
||||
{
|
||||
recipe = recipes[index];
|
||||
return true;
|
||||
}
|
||||
|
||||
recipe = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
private static bool IsRecipeValid(ItemProcessingRecipe recipe) =>
|
||||
recipe != null && recipe.InputItem != null &&
|
||||
recipe.OutputItem != null && recipe.OutputItem.WorldPrefab != null;
|
||||
|
||||
private static bool TryGetItemControl(
|
||||
NetworkItem item,
|
||||
out IWorkstationItemControl itemControl)
|
||||
{
|
||||
foreach (MonoBehaviour component in item.GetComponents<MonoBehaviour>())
|
||||
{
|
||||
if (component is IWorkstationItemControl candidate)
|
||||
{
|
||||
itemControl = candidate;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
itemControl = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+239907
-1535
File diff suppressed because one or more lines are too long
@@ -0,0 +1,56 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &-1510052659147631635
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 3
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3}
|
||||
m_Name: Tonemapping
|
||||
m_EditorClassIdentifier:
|
||||
active: 1
|
||||
mode:
|
||||
m_OverrideState: 1
|
||||
m_Value: 2
|
||||
neutralHDRRangeReductionMode:
|
||||
m_OverrideState: 0
|
||||
m_Value: 2
|
||||
acesPreset:
|
||||
m_OverrideState: 0
|
||||
m_Value: 3
|
||||
hueShiftAmount:
|
||||
m_OverrideState: 0
|
||||
m_Value: 0
|
||||
detectPaperWhite:
|
||||
m_OverrideState: 0
|
||||
m_Value: 0
|
||||
paperWhite:
|
||||
m_OverrideState: 0
|
||||
m_Value: 300
|
||||
detectBrightnessLimits:
|
||||
m_OverrideState: 0
|
||||
m_Value: 1
|
||||
minNits:
|
||||
m_OverrideState: 0
|
||||
m_Value: 0.005
|
||||
maxNits:
|
||||
m_OverrideState: 0
|
||||
m_Value: 1000
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||
m_Name: Global Volume Profile
|
||||
m_EditorClassIdentifier:
|
||||
components:
|
||||
- {fileID: -1510052659147631635}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: abf4630283046ea4f99953c99cd2d306
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e845be324388fcf4e8c934f2bc075208
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 1
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 0
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 100
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d99c4192ecbd84943a0b188959e74a37
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 1
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 0
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 100
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 221d2a860f553384ea288bf1849eae82
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 1
|
||||
seamlessCubemap: 1
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 2
|
||||
aniso: 0
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 1
|
||||
nPOTScale: 1
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 0
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
textureShape: 2
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 100
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+24567
-118788
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user