Added UI to Furnance, fixed carry and drag obj and added fish
This commit is contained in:
+4
-4
@@ -10,9 +10,9 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: b0c79cebdb4201743be8612545ee180e, type: 3}
|
||||
m_Name: Scrap
|
||||
m_Name: Fish
|
||||
m_EditorClassIdentifier:
|
||||
itemId: scrap
|
||||
displayName: Scrap
|
||||
itemId: fish
|
||||
displayName: Fish
|
||||
category: 0
|
||||
worldPrefab: {fileID: 4847937828371134312, guid: 7f5a91b903d654342bfb77c0b9126aa3, type: 3}
|
||||
worldPrefab: {fileID: 6820144355512337958, guid: 04a6d9d9e28782a4a9f8f71ce4438fc0, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f24c01151fded9c4cb5789c9a2a60268
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -14,5 +14,4 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
items:
|
||||
- {fileID: 11400000, guid: dc1f8087c2120614fa0ddcf92cde7f0d, type: 2}
|
||||
- {fileID: 11400000, guid: 5887c6bd676db1e4eb497e4ac14bc231, type: 2}
|
||||
- {fileID: 11400000, guid: 4f630a08648639c47b2975160e744ea3, type: 2}
|
||||
- {fileID: 11400000, guid: 28dfa90ac37ac884d84b4f3754b33546, type: 2}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6f108b1c62846e49aa2fcf8db4a93a2
|
||||
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
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-back-standart
|
||||
displayName: Rocket-Back-Standart
|
||||
category: 2
|
||||
worldPrefab: {fileID: 8591287727625443167, guid: be54182e751ec4b48b7db90e8598dce1, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b9e34349c67bdcf4f9ba3fc7655b9dac
|
||||
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
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-base-avia
|
||||
displayName: Rocket-Base-Avia
|
||||
category: 2
|
||||
worldPrefab: {fileID: 1256934312238460503, guid: 9712e2459410a6d43b55ea9d3847e29a, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e6fdb55d6695e0f4a919bcfbc6bf5ab9
|
||||
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
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-base-standart
|
||||
displayName: Rocket-Base-Standart
|
||||
category: 2
|
||||
worldPrefab: {fileID: 875723161486981202, guid: 6e681ca5358fff648ba85ae9e494fa77, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d3938024cd4dd964e804af02917917b2
|
||||
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
|
||||
m_EditorClassIdentifier:
|
||||
itemId: rocket-cone-standart
|
||||
displayName: Rocket-Cone-Standart
|
||||
category: 2
|
||||
worldPrefab: {fileID: 7151289907260619783, guid: a31204f69b185d54ab9e12b0a3a1e98b, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 57d611457f6826f46972c33527ddda60
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,19 @@
|
||||
%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: 0928368adb57acb4987bb8fabda3a927, type: 3}
|
||||
m_Name: Rocket-Parts-Catalog
|
||||
m_EditorClassIdentifier:
|
||||
items:
|
||||
- {fileID: 11400000, guid: b9e34349c67bdcf4f9ba3fc7655b9dac, type: 2}
|
||||
- {fileID: 11400000, guid: e6fdb55d6695e0f4a919bcfbc6bf5ab9, type: 2}
|
||||
- {fileID: 11400000, guid: d3938024cd4dd964e804af02917917b2, type: 2}
|
||||
- {fileID: 11400000, guid: 57d611457f6826f46972c33527ddda60, type: 2}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cf1fc024df6136d4d8ae38dae7ebf49b
|
||||
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: Scrap-1
|
||||
m_EditorClassIdentifier:
|
||||
itemId: scrap-1
|
||||
displayName: Scrap-1
|
||||
category: 0
|
||||
worldPrefab: {fileID: 9104915302393667013, guid: 6eee6df5dab550446b41008fa6fff89a, type: 3}
|
||||
@@ -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: Scrap-2
|
||||
m_EditorClassIdentifier:
|
||||
itemId: scrap-2
|
||||
displayName: Scrap-2
|
||||
category: 0
|
||||
worldPrefab: {fileID: 3823145821987330810, guid: 8cc9c4d7d9e04d640bbd0616e7926670, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 28dfa90ac37ac884d84b4f3754b33546
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
%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: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Back-Standart
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: back-standart
|
||||
displayName: Back-Standart
|
||||
outputItem: {fileID: 11400000, guid: b9e34349c67bdcf4f9ba3fc7655b9dac, type: 2}
|
||||
outputAmount: 1
|
||||
metalCost: 25
|
||||
processingDuration: 3
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2a3f0860fa76fc542a7e66f3f8cbd7f3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
%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: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Base-Avia
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: base-avia
|
||||
displayName: Base-Avia
|
||||
outputItem: {fileID: 11400000, guid: e6fdb55d6695e0f4a919bcfbc6bf5ab9, type: 2}
|
||||
outputAmount: 1
|
||||
metalCost: 25
|
||||
processingDuration: 3
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f82e77c5655f1cc49b1603531cbf9a63
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
%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: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Base-Standart
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: base-standart
|
||||
displayName: Base-Standart
|
||||
outputItem: {fileID: 11400000, guid: d3938024cd4dd964e804af02917917b2, type: 2}
|
||||
outputAmount: 1
|
||||
metalCost: 25
|
||||
processingDuration: 3
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 39cc97f8147c0f54fa1a75670620f59c
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,20 @@
|
||||
%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: dbdeccc1573d9204f858f7c114972d91, type: 3}
|
||||
m_Name: Recipe-RocketParts-Cone-Standart
|
||||
m_EditorClassIdentifier:
|
||||
recipeId: cone-standart
|
||||
displayName: Cone-Standart
|
||||
outputItem: {fileID: 11400000, guid: 57d611457f6826f46972c33527ddda60, type: 2}
|
||||
outputAmount: 1
|
||||
metalCost: 25
|
||||
processingDuration: 3
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f20a8ae0c8ade964c8aa4dfba8cdd8c3
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -251,7 +251,7 @@ MonoBehaviour:
|
||||
maximumDragSpeed: 3
|
||||
minimumSpeedMultiplier: 0.35
|
||||
maximumDraggerDistance: 4.5
|
||||
keepCurrentHeight: 0
|
||||
movementMode: 0
|
||||
physicsBody: {fileID: 3792544786712207931}
|
||||
objectColliders:
|
||||
- {fileID: 6739897567601242453}
|
||||
|
||||
@@ -251,7 +251,7 @@ MonoBehaviour:
|
||||
maximumDragSpeed: 3
|
||||
minimumSpeedMultiplier: 0.35
|
||||
maximumDraggerDistance: 4.5
|
||||
keepCurrentHeight: 0
|
||||
movementMode: 0
|
||||
physicsBody: {fileID: 3792544786712207931}
|
||||
objectColliders:
|
||||
- {fileID: 6739897567601242453}
|
||||
|
||||
@@ -0,0 +1,313 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &66130177589869147
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8695794581474922756}
|
||||
m_Layer: 0
|
||||
m_Name: Root
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &8695794581474922756
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 66130177589869147}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8515152326948156129}
|
||||
m_Father: {fileID: 1951246361950897413}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &3256751277309890899
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1951246361950897413}
|
||||
- component: {fileID: 6820144355512337958}
|
||||
- component: {fileID: 2440379881638716097}
|
||||
- component: {fileID: 8391397903280292016}
|
||||
- component: {fileID: 3976025863607763387}
|
||||
- component: {fileID: 6297617078924149825}
|
||||
- component: {fileID: 2499853092120418384}
|
||||
- component: {fileID: 8607637414762509686}
|
||||
m_Layer: 0
|
||||
m_Name: Item-Fish
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1951246361950897413
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -3.104253, y: 1.1569388, z: 8.275935}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 8695794581474922756}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &6820144355512337958
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
GlobalObjectIdHash: 462441546
|
||||
InScenePlacedSourceGlobalObjectIdHash: 3087726494
|
||||
DeferredDespawnTick: 0
|
||||
Ownership: 1
|
||||
AlwaysReplicateAsRoot: 0
|
||||
SynchronizeTransform: 1
|
||||
m_InScenePlaced: 1
|
||||
ActiveSceneSynchronization: 0
|
||||
SceneMigrationSynchronization: 0
|
||||
SpawnWithObservers: 1
|
||||
DontDestroyWithOwner: 0
|
||||
AutoObjectParentSync: 1
|
||||
SyncOwnerTransformWhenParented: 1
|
||||
AllowOwnerToParent: 0
|
||||
--- !u!114 &2440379881638716097
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 323282b7a87fc4344bd33250e88822e8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
definition: {fileID: 11400000, guid: f24c01151fded9c4cb5789c9a2a60268, type: 2}
|
||||
--- !u!54 &8391397903280292016
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
serializedVersion: 4
|
||||
m_Mass: 1
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ImplicitCom: 1
|
||||
m_ImplicitTensor: 1
|
||||
m_UseGravity: 1
|
||||
m_IsKinematic: 0
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
--- !u!114 &3976025863607763387
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
NetworkTransformExpanded: 0
|
||||
AutoOwnerAuthorityTickOffset: 1
|
||||
PositionInterpolationType: 0
|
||||
RotationInterpolationType: 0
|
||||
ScaleInterpolationType: 0
|
||||
PositionLerpSmoothing: 1
|
||||
PositionMaxInterpolationTime: 0.1
|
||||
RotationLerpSmoothing: 1
|
||||
RotationMaxInterpolationTime: 0.1
|
||||
ScaleLerpSmoothing: 1
|
||||
ScaleMaxInterpolationTime: 0.1
|
||||
AuthorityMode: 0
|
||||
TickSyncChildren: 0
|
||||
UseUnreliableDeltas: 0
|
||||
SyncPositionX: 1
|
||||
SyncPositionY: 1
|
||||
SyncPositionZ: 1
|
||||
SyncRotAngleX: 1
|
||||
SyncRotAngleY: 1
|
||||
SyncRotAngleZ: 1
|
||||
SyncScaleX: 1
|
||||
SyncScaleY: 1
|
||||
SyncScaleZ: 1
|
||||
PositionThreshold: 0.001
|
||||
RotAngleThreshold: 0.01
|
||||
ScaleThreshold: 0.01
|
||||
UseQuaternionSynchronization: 0
|
||||
UseQuaternionCompression: 0
|
||||
UseHalfFloatPrecision: 0
|
||||
InLocalSpace: 0
|
||||
SwitchTransformSpaceWhenParented: 0
|
||||
Interpolate: 1
|
||||
SlerpPosition: 0
|
||||
--- !u!114 &6297617078924149825
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f6c0be61502bb534f922ebb746851216, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
NetworkRigidbodyBaseExpanded: 0
|
||||
UseRigidBodyForMotion: 0
|
||||
AutoUpdateKinematicState: 1
|
||||
AutoSetKinematicOnDespawn: 1
|
||||
--- !u!114 &2499853092120418384
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fad79bb3d620ffb46b527a9e361c28ae, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
interactionLabel: Interact
|
||||
maximumInteractionDistance: 3
|
||||
physicsBody: {fileID: 0}
|
||||
objectColliders: []
|
||||
collisionRefreshInterval: 0.25
|
||||
positionSmoothTime: 0.12
|
||||
maximumFollowSpeed: 12
|
||||
maximumFollowDistance: 1.25
|
||||
rotationFollowSpeed: 14
|
||||
throwForce: 6
|
||||
throwUpwardForce: 0.5
|
||||
carryOffset: {x: 0, y: -0.3, z: 1.25}
|
||||
--- !u!136 &8607637414762509686
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3256751277309890899}
|
||||
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: 2
|
||||
m_Radius: 0.2
|
||||
m_Height: 1.12
|
||||
m_Direction: 2
|
||||
m_Center: {x: 0, y: 0.21, z: 0}
|
||||
--- !u!1001 &6948469637693767008
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 8695794581474922756}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1342889782683910774, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: Herring
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalPosition.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalRotation.w
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
--- !u!4 &8515152326948156129 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1604981034209185665, guid: 4aa01f1d5c72d4e47a8c44e612a6b6fc, type: 3}
|
||||
m_PrefabInstance: {fileID: 6948469637693767008}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 04a6d9d9e28782a4a9f8f71ce4438fc0
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: be54182e751ec4b48b7db90e8598dce1
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9712e2459410a6d43b55ea9d3847e29a
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6e681ca5358fff648ba85ae9e494fa77
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a31204f69b185d54ab9e12b0a3a1e98b
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6eee6df5dab550446b41008fa6fff89a
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,993 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &6752047176419627530
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5905569944959663220}
|
||||
- component: {fileID: 1187608763751665767}
|
||||
- component: {fileID: 2911805108514991796}
|
||||
- component: {fileID: 6186154686701280285}
|
||||
- component: {fileID: 2057801181638564846}
|
||||
- component: {fileID: 4117464146160704158}
|
||||
- component: {fileID: 3823145821987330810}
|
||||
- component: {fileID: 2085170032403131954}
|
||||
- component: {fileID: 303029953369430869}
|
||||
- component: {fileID: 763204358960808204}
|
||||
- component: {fileID: 204523454519789059}
|
||||
- component: {fileID: 4600339537334545784}
|
||||
- component: {fileID: 3964830971777414014}
|
||||
m_Layer: 0
|
||||
m_Name: Scrap-2
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &5905569944959663220
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -0.8, y: 1.2, z: -2.8}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1187608763751665767
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_MeshFormatVersion: 2
|
||||
m_Faces:
|
||||
- m_Indexes: 030000000000000001000000020000000300000001000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 070000000400000005000000060000000700000005000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: 1
|
||||
- m_Indexes: 0a0000000b00000008000000090000000a00000008000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 0d0000000e0000000f0000000c0000000d0000000f000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 130000001400000010000000110000001300000010000000130000001100000012000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 180000001900000015000000160000001800000015000000180000001600000017000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 1e0000001a0000001d0000001b0000001d0000001a0000001b0000001c0000001d000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 230000001f0000002200000020000000220000001f000000200000002100000022000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 240000002500000026000000250000002700000026000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 28000000290000002a000000290000002b0000002a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 2c0000002d0000002e0000002d0000002f0000002e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 300000003100000032000000310000003300000032000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 340000003500000036000000350000003700000036000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 38000000390000003a000000390000003b0000003a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 3c0000003d0000003e0000003d0000003f0000003e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 400000004100000042000000410000004300000042000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 450000004700000046000000450000004400000047000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 2100000, guid: c22777d6e868e4f2fb421913386b154e, type: 2}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: 0
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 48000000490000004a000000490000004b0000004a000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 4c0000004d0000004e0000004d0000004f0000004e000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 500000005100000052000000510000005300000052000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
- m_Indexes: 540000005500000056000000550000005700000056000000
|
||||
m_SmoothingGroup: 0
|
||||
m_Uv:
|
||||
m_UseWorldSpace: 0
|
||||
m_FlipU: 0
|
||||
m_FlipV: 0
|
||||
m_SwapUV: 0
|
||||
m_Fill: 1
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Rotation: 0
|
||||
m_Anchor: 9
|
||||
m_Material: {fileID: 0}
|
||||
m_SubmeshIndex: 0
|
||||
m_ManualUV: 0
|
||||
elementGroup: -1
|
||||
m_TextureGroup: -1
|
||||
m_SharedVertices:
|
||||
- m_Vertices: 00000000370000003a000000
|
||||
- m_Vertices: 14000000170000003500000038000000
|
||||
- m_Vertices: 010000003b00000042000000
|
||||
- m_Vertices: 04000000130000003900000040000000
|
||||
- m_Vertices: 020000003e00000043000000
|
||||
- m_Vertices: 0700000025000000280000003c000000410000004d00000054000000
|
||||
- m_Vertices: 0f0000004f00000056000000
|
||||
- m_Vertices: 0b000000270000002a000000
|
||||
- m_Vertices: 03000000360000003f000000
|
||||
- m_Vertices: 0e0000004b0000004e000000
|
||||
- m_Vertices: 18000000340000003d000000490000004c000000
|
||||
- m_Vertices: 05000000120000001e000000
|
||||
- m_Vertices: 060000001d0000002900000030000000
|
||||
- m_Vertices: 080000002b00000032000000
|
||||
- m_Vertices: 090000002e00000033000000
|
||||
- m_Vertices: 1c000000230000002c00000031000000
|
||||
- m_Vertices: 0a000000260000002f000000
|
||||
- m_Vertices: 0c0000005200000057000000
|
||||
- m_Vertices: 22000000240000002d0000005000000055000000
|
||||
- m_Vertices: 0d0000004a00000053000000
|
||||
- m_Vertices: 19000000210000004800000051000000
|
||||
- m_Vertices: 100000001600000044000000
|
||||
- m_Vertices: 110000001a00000045000000
|
||||
- m_Vertices: 150000002000000047000000
|
||||
- m_Vertices: 1b0000001f00000046000000
|
||||
m_SharedTextures: []
|
||||
m_Positions:
|
||||
- {x: -0.17792217, y: 0.051240444, z: -0.17792225}
|
||||
- {x: -0.17792217, y: 0.051240444, z: 0}
|
||||
- {x: 0.000000014901161, y: 0.051240444, z: 0}
|
||||
- {x: 0.000000014901161, y: 0.051240444, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: 0}
|
||||
- {x: -0.17792214, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.019928336, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.019928336, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.019928336, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.019928336, z: 0}
|
||||
- {x: 0.17792217, y: 0.101614356, z: 0}
|
||||
- {x: 0.17792217, y: 0.101614356, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: 0.101614356, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: 0.101614356, z: 0}
|
||||
- {x: -0.17792214, y: -0.101614475, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.101614475, z: 0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: 0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: 0}
|
||||
- {x: -0.17792214, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.17792217, y: -0.101614475, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.101614475, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.101614475, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.101614475, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.101614475, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.101614475, z: -0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0}
|
||||
- {x: 0.17792217, y: -0.019928336, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.019928336, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.019928336, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.019928336, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0}
|
||||
- {x: 0.17792217, y: -0.019928336, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.019928336, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.019928336, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.019928336, z: 0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: 0.051240444, z: -0.17792225}
|
||||
- {x: -0.17792217, y: 0.051240444, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: 0}
|
||||
- {x: -0.17792217, y: 0.051240444, z: -0.17792225}
|
||||
- {x: -0.17792217, y: 0.051240444, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: 0.051240444, z: 0}
|
||||
- {x: 0.000000014901161, y: 0.051240444, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.058224678, z: 0}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0}
|
||||
- {x: -0.17792217, y: 0.051240444, z: 0}
|
||||
- {x: 0.000000014901161, y: 0.051240444, z: 0}
|
||||
- {x: -0.17792214, y: -0.101614475, z: -0.17792225}
|
||||
- {x: -0.17792214, y: -0.101614475, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.101614475, z: 0.17792225}
|
||||
- {x: 0.17792217, y: -0.101614475, z: -0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.17792217, y: 0.101614356, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: 0.101614356, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0}
|
||||
- {x: 0.000000014901161, y: 0.101614356, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: 0.101614356, z: 0}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0}
|
||||
- {x: 0.17792217, y: -0.058224678, z: -0.17792225}
|
||||
- {x: 0.17792217, y: 0.101614356, z: 0}
|
||||
- {x: 0.17792217, y: 0.101614356, z: -0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.058224678, z: 0}
|
||||
- {x: 0.17792217, y: -0.058224678, z: 0}
|
||||
- {x: 0.000000014901161, y: 0.101614356, z: 0}
|
||||
- {x: 0.17792217, y: 0.101614356, z: 0}
|
||||
m_Textures0:
|
||||
- {x: -0.17792217, y: -0.17792225}
|
||||
- {x: -0.17792217, y: 0}
|
||||
- {x: 0.000000014901161, y: 0}
|
||||
- {x: 0.000000014901161, y: -0.17792225}
|
||||
- {x: -0.17792214, y: 0}
|
||||
- {x: -0.17792214, y: 0.17792225}
|
||||
- {x: 0.000000014901161, y: 0.17792225}
|
||||
- {x: 0.000000014901161, y: 0}
|
||||
- {x: 0.000000014901161, y: 0.17792225}
|
||||
- {x: 0.17792217, y: 0.17792225}
|
||||
- {x: 0.17792217, y: 0}
|
||||
- {x: 0.000000014901161, y: 0}
|
||||
- {x: 0.17792217, y: 0}
|
||||
- {x: 0.17792217, y: -0.17792225}
|
||||
- {x: 0.000000014901161, y: -0.17792225}
|
||||
- {x: 0.000000014901161, y: 0}
|
||||
- {x: 0.17792225, y: -0.101614475}
|
||||
- {x: -0.17792225, y: -0.101614475}
|
||||
- {x: -0.17792225, y: -0.058224678}
|
||||
- {x: -0, y: -0.058224678}
|
||||
- {x: 0.17792225, y: -0.058224678}
|
||||
- {x: 0.17792217, y: -0.101614475}
|
||||
- {x: -0.17792214, y: -0.101614475}
|
||||
- {x: -0.17792214, y: -0.058224678}
|
||||
- {x: 0.000000014901161, y: -0.058224678}
|
||||
- {x: 0.17792217, y: -0.058224678}
|
||||
- {x: 0.17792214, y: -0.101614475}
|
||||
- {x: -0.17792217, y: -0.101614475}
|
||||
- {x: -0.17792217, y: -0.058224678}
|
||||
- {x: -0.000000014901161, y: -0.058224678}
|
||||
- {x: 0.17792214, y: -0.058224678}
|
||||
- {x: 0.17792225, y: -0.101614475}
|
||||
- {x: -0.17792225, y: -0.101614475}
|
||||
- {x: -0.17792225, y: -0.058224678}
|
||||
- {x: 0, y: -0.058224678}
|
||||
- {x: 0.17792225, y: -0.058224678}
|
||||
- {x: 0.17792217, y: -0.058224678}
|
||||
- {x: 0.000000014901161, y: -0.058224678}
|
||||
- {x: 0.17792217, y: -0.019928336}
|
||||
- {x: 0.000000014901161, y: -0.019928336}
|
||||
- {x: 0, y: -0.058224678}
|
||||
- {x: -0.17792225, y: -0.058224678}
|
||||
- {x: 0, y: -0.019928336}
|
||||
- {x: -0.17792225, y: -0.019928336}
|
||||
- {x: 0.17792225, y: -0.058224678}
|
||||
- {x: 0, y: -0.058224678}
|
||||
- {x: 0.17792225, y: -0.019928336}
|
||||
- {x: 0, y: -0.019928336}
|
||||
- {x: -0.000000014901161, y: -0.058224678}
|
||||
- {x: -0.17792217, y: -0.058224678}
|
||||
- {x: -0.000000014901161, y: -0.019928336}
|
||||
- {x: -0.17792217, y: -0.019928336}
|
||||
- {x: 0.000000014901161, y: -0.058224678}
|
||||
- {x: -0.17792214, y: -0.058224678}
|
||||
- {x: 0.000000014901161, y: 0.051240444}
|
||||
- {x: -0.17792217, y: 0.051240444}
|
||||
- {x: 0.17792225, y: -0.05822463}
|
||||
- {x: 0, y: -0.05822463}
|
||||
- {x: 0.17792225, y: 0.051240493}
|
||||
- {x: 0, y: 0.051240493}
|
||||
- {x: 0, y: -0.058224678}
|
||||
- {x: -0.17792225, y: -0.058224678}
|
||||
- {x: 0, y: 0.051240444}
|
||||
- {x: -0.17792225, y: 0.051240444}
|
||||
- {x: 0.17792214, y: -0.058224678}
|
||||
- {x: -0.000000014901161, y: -0.058224678}
|
||||
- {x: 0.17792217, y: 0.051240444}
|
||||
- {x: -0.000000014901161, y: 0.051240444}
|
||||
- {x: 0.17792214, y: -0.17792225}
|
||||
- {x: 0.17792214, y: 0.17792225}
|
||||
- {x: -0.17792217, y: 0.17792225}
|
||||
- {x: -0.17792217, y: -0.17792225}
|
||||
- {x: 0.17792217, y: -0.058224678}
|
||||
- {x: 0.000000014901161, y: -0.058224678}
|
||||
- {x: 0.17792217, y: 0.101614356}
|
||||
- {x: 0.000000014901161, y: 0.101614356}
|
||||
- {x: 0.17792225, y: -0.058224678}
|
||||
- {x: 0, y: -0.058224678}
|
||||
- {x: 0.17792225, y: 0.101614356}
|
||||
- {x: 0, y: 0.101614356}
|
||||
- {x: 0, y: -0.058224678}
|
||||
- {x: -0.17792225, y: -0.058224678}
|
||||
- {x: 0, y: 0.101614356}
|
||||
- {x: -0.17792225, y: 0.101614356}
|
||||
- {x: -0.000000014901161, y: -0.058224678}
|
||||
- {x: -0.17792217, y: -0.058224678}
|
||||
- {x: -0.000000014901161, y: 0.101614356}
|
||||
- {x: -0.17792217, y: 0.101614356}
|
||||
m_Textures2: []
|
||||
m_Textures3: []
|
||||
m_Tangents:
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 1, y: 0, z: 0, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: -1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: 0, y: 0, z: 1, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
- {x: -1, y: 0, z: 0, w: -1}
|
||||
m_Colors: []
|
||||
m_UnwrapParameters:
|
||||
m_HardAngle: 88
|
||||
m_PackMargin: 20
|
||||
m_AngleError: 8
|
||||
m_AreaError: 15
|
||||
m_PreserveMeshAssetOnDestroy: 0
|
||||
assetGuid:
|
||||
m_Mesh: {fileID: 0}
|
||||
m_VersionIndex: 1186
|
||||
m_IsSelectable: 1
|
||||
m_SelectedFaces:
|
||||
m_SelectedEdges: []
|
||||
m_SelectedVertices:
|
||||
--- !u!114 &2911805108514991796
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Shape:
|
||||
rid: 7027693638748209280
|
||||
m_ShapeRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_UnmodifiedMeshVersion: 21
|
||||
m_Size: {x: 1, y: 0, z: 1}
|
||||
m_LocalCenter: {x: 0, y: 0, z: 0}
|
||||
references:
|
||||
version: 2
|
||||
RefIds:
|
||||
- rid: 7027693638748209280
|
||||
type: {class: Sprite, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder}
|
||||
data:
|
||||
--- !u!23 &6186154686701280285
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
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_RayTracingAccelStructBuildFlagsOverride: 0
|
||||
m_RayTracingAccelStructBuildFlags: 1
|
||||
m_SmallMeshCulling: 1
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 6585a554c878c00438bbd4f81d212938, 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: 2
|
||||
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 &2057801181638564846
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!64 &4117464146160704158
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
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: 5
|
||||
m_Convex: 1
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!114 &3823145821987330810
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
GlobalObjectIdHash: 2433866013
|
||||
InScenePlacedSourceGlobalObjectIdHash: 2433866013
|
||||
DeferredDespawnTick: 0
|
||||
Ownership: 1
|
||||
AlwaysReplicateAsRoot: 0
|
||||
SynchronizeTransform: 1
|
||||
m_InScenePlaced: 0
|
||||
ActiveSceneSynchronization: 0
|
||||
SceneMigrationSynchronization: 0
|
||||
SpawnWithObservers: 1
|
||||
DontDestroyWithOwner: 0
|
||||
AutoObjectParentSync: 1
|
||||
SyncOwnerTransformWhenParented: 1
|
||||
AllowOwnerToParent: 0
|
||||
--- !u!114 &2085170032403131954
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
NetworkTransformExpanded: 0
|
||||
AutoOwnerAuthorityTickOffset: 1
|
||||
PositionInterpolationType: 0
|
||||
RotationInterpolationType: 0
|
||||
ScaleInterpolationType: 0
|
||||
PositionLerpSmoothing: 1
|
||||
PositionMaxInterpolationTime: 0.1
|
||||
RotationLerpSmoothing: 1
|
||||
RotationMaxInterpolationTime: 0.1
|
||||
ScaleLerpSmoothing: 1
|
||||
ScaleMaxInterpolationTime: 0.1
|
||||
AuthorityMode: 0
|
||||
TickSyncChildren: 0
|
||||
UseUnreliableDeltas: 0
|
||||
SyncPositionX: 1
|
||||
SyncPositionY: 1
|
||||
SyncPositionZ: 1
|
||||
SyncRotAngleX: 1
|
||||
SyncRotAngleY: 1
|
||||
SyncRotAngleZ: 1
|
||||
SyncScaleX: 1
|
||||
SyncScaleY: 1
|
||||
SyncScaleZ: 1
|
||||
PositionThreshold: 0.001
|
||||
RotAngleThreshold: 0.01
|
||||
ScaleThreshold: 0.01
|
||||
UseQuaternionSynchronization: 0
|
||||
UseQuaternionCompression: 0
|
||||
UseHalfFloatPrecision: 0
|
||||
InLocalSpace: 0
|
||||
SwitchTransformSpaceWhenParented: 0
|
||||
Interpolate: 1
|
||||
SlerpPosition: 0
|
||||
--- !u!114 &303029953369430869
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fad79bb3d620ffb46b527a9e361c28ae, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
interactionLabel: Interact
|
||||
maximumInteractionDistance: 3
|
||||
physicsBody: {fileID: 763204358960808204}
|
||||
objectColliders: []
|
||||
collisionRefreshInterval: 0.25
|
||||
positionSmoothTime: 0.12
|
||||
maximumFollowSpeed: 12
|
||||
maximumFollowDistance: 1.25
|
||||
rotationFollowSpeed: 14
|
||||
throwForce: 6
|
||||
throwUpwardForce: 0.5
|
||||
carryOffset: {x: 0, y: -0.3, z: 1.25}
|
||||
--- !u!54 &763204358960808204
|
||||
Rigidbody:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
serializedVersion: 4
|
||||
m_Mass: 35
|
||||
m_Drag: 0
|
||||
m_AngularDrag: 0.05
|
||||
m_CenterOfMass: {x: 0, y: 0, z: 0}
|
||||
m_InertiaTensor: {x: 1, y: 1, z: 1}
|
||||
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ImplicitCom: 1
|
||||
m_ImplicitTensor: 1
|
||||
m_UseGravity: 1
|
||||
m_IsKinematic: 0
|
||||
m_Interpolate: 0
|
||||
m_Constraints: 0
|
||||
m_CollisionDetection: 0
|
||||
--- !u!114 &204523454519789059
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f6c0be61502bb534f922ebb746851216, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
NetworkRigidbodyBaseExpanded: 0
|
||||
UseRigidBodyForMotion: 1
|
||||
AutoUpdateKinematicState: 1
|
||||
AutoSetKinematicOnDespawn: 1
|
||||
--- !u!114 &4600339537334545784
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 323282b7a87fc4344bd33250e88822e8, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
ShowTopMostFoldoutHeaderGroup: 1
|
||||
definition: {fileID: 11400000, guid: 28dfa90ac37ac884d84b4f3754b33546, type: 2}
|
||||
--- !u!114 &3964830971777414014
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6752047176419627530}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9dd3ea21361871345b5a9d21839c6da1, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
metalAmount: 25
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8cc9c4d7d9e04d640bbd0616e7926670
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -2,6 +2,14 @@ using System.Collections.Generic;
|
||||
using Unity.Netcode;
|
||||
using Unity.Netcode.Components;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
public enum DraggableMovementMode
|
||||
{
|
||||
Free3D = 0,
|
||||
KeepWorldHeight = 1,
|
||||
FollowGround = 2
|
||||
}
|
||||
|
||||
[RequireComponent(typeof(Rigidbody), typeof(NetworkRigidbody))]
|
||||
public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
@@ -18,7 +26,23 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
[SerializeField, Min(0.1f)] private float maximumDragSpeed = 3f;
|
||||
[SerializeField, Range(0.05f, 1f)] private float minimumSpeedMultiplier = 0.35f;
|
||||
[SerializeField, Min(0.5f)] private float maximumDraggerDistance = 4.5f;
|
||||
[SerializeField] private bool keepCurrentHeight;
|
||||
[SerializeField, Min(0.01f)] private float positionSmoothTime = 0.12f;
|
||||
[SerializeField, Min(0.1f)] private float rotationFollowSpeed = 8f;
|
||||
[SerializeField] private Vector3 rotationOffset;
|
||||
[FormerlySerializedAs("keepCurrentHeight")]
|
||||
[SerializeField] private DraggableMovementMode movementMode;
|
||||
|
||||
[Header("Ground Following")]
|
||||
[SerializeField] private LayerMask groundLayers = ~0;
|
||||
[SerializeField] private Transform groundContactPoint;
|
||||
[SerializeField, Min(0.01f)] private float groundProbeRadius = 0.2f;
|
||||
[SerializeField, Min(0.1f)] private float groundProbeHeight = 1.25f;
|
||||
[SerializeField, Min(0.1f)] private float maximumGroundDrop = 2f;
|
||||
[SerializeField, Range(0f, 89f)] private float maximumGroundAngle = 55f;
|
||||
[SerializeField, Min(0f)] private float groundClearance = 0.02f;
|
||||
[SerializeField, Min(0.1f)] private float maximumGroundVerticalSpeed = 6f;
|
||||
[SerializeField] private bool alignToGround = true;
|
||||
[SerializeField, Min(0.1f)] private float groundAlignmentSpeed = 10f;
|
||||
|
||||
[Header("Physics")]
|
||||
[SerializeField] private Rigidbody physicsBody;
|
||||
@@ -36,7 +60,11 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
NetworkVariableWritePermission.Server);
|
||||
|
||||
private readonly HashSet<Collider> ignoredPlayerColliders = new();
|
||||
private readonly RaycastHit[] groundHits = new RaycastHit[16];
|
||||
private float nextCollisionRefreshTime;
|
||||
private Vector3 localGroundContactPoint;
|
||||
private Vector3 smoothedGroundNormal = Vector3.up;
|
||||
private Vector3 dragVelocity;
|
||||
|
||||
public float Weight => weight;
|
||||
public int ActiveDraggerCount
|
||||
@@ -120,18 +148,33 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
return;
|
||||
|
||||
RemoveInvalidDraggers();
|
||||
if (!HasEnoughPullStrength || !TryGetCombinedDragTarget(out Vector3 target))
|
||||
if (!HasEnoughPullStrength ||
|
||||
!TryGetCombinedDragTarget(out Vector3 target, out Vector3 forward))
|
||||
{
|
||||
dragVelocity = Vector3.zero;
|
||||
return;
|
||||
|
||||
if (keepCurrentHeight)
|
||||
target.y = physicsBody.position.y;
|
||||
}
|
||||
|
||||
float totalStrength = ActiveDraggerCount * pullStrengthPerPlayer;
|
||||
float loadRatio = Mathf.Clamp01(weight / totalStrength);
|
||||
float speedMultiplier = Mathf.Lerp(1f, minimumSpeedMultiplier, loadRatio);
|
||||
float movementStep = maximumDragSpeed * speedMultiplier * Time.fixedDeltaTime;
|
||||
Vector3 nextPosition = Vector3.MoveTowards(physicsBody.position, target, movementStep);
|
||||
physicsBody.MovePosition(nextPosition);
|
||||
float movementSpeed = maximumDragSpeed * speedMultiplier;
|
||||
|
||||
switch (movementMode)
|
||||
{
|
||||
case DraggableMovementMode.KeepWorldHeight:
|
||||
target.y = physicsBody.position.y;
|
||||
FollowDragTarget(target, forward, movementSpeed, Vector3.up);
|
||||
break;
|
||||
|
||||
case DraggableMovementMode.FollowGround:
|
||||
MoveAlongGround(target, forward, movementSpeed);
|
||||
break;
|
||||
|
||||
default:
|
||||
FollowDragTarget(target, forward, movementSpeed, Vector3.up);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool CanInteractOnServer(ulong senderClientId) =>
|
||||
@@ -188,27 +231,42 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
return (playerObject.transform.position - physicsBody.position).sqrMagnitude <= maximumDistanceSquared;
|
||||
}
|
||||
|
||||
private bool TryGetCombinedDragTarget(out Vector3 target)
|
||||
private bool TryGetCombinedDragTarget(out Vector3 target, out Vector3 forward)
|
||||
{
|
||||
target = Vector3.zero;
|
||||
forward = Vector3.zero;
|
||||
int validTargets = 0;
|
||||
|
||||
AddDragTarget(firstDraggerClientId.Value, ref target, ref validTargets);
|
||||
AddDragTarget(secondDraggerClientId.Value, ref target, ref validTargets);
|
||||
AddDragTarget(firstDraggerClientId.Value, ref target, ref forward, ref validTargets);
|
||||
AddDragTarget(secondDraggerClientId.Value, ref target, ref forward, ref validTargets);
|
||||
|
||||
if (validTargets == 0)
|
||||
return false;
|
||||
|
||||
target /= validTargets;
|
||||
forward = Vector3.ProjectOnPlane(forward, Vector3.up);
|
||||
|
||||
if (forward.sqrMagnitude < 0.0001f)
|
||||
forward = Vector3.ProjectOnPlane(target - physicsBody.position, Vector3.up);
|
||||
|
||||
if (forward.sqrMagnitude < 0.0001f)
|
||||
forward = Vector3.ProjectOnPlane(physicsBody.transform.forward, Vector3.up);
|
||||
|
||||
forward.Normalize();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void AddDragTarget(ulong clientId, ref Vector3 target, ref int validTargets)
|
||||
private void AddDragTarget(
|
||||
ulong clientId,
|
||||
ref Vector3 target,
|
||||
ref Vector3 forward,
|
||||
ref int validTargets)
|
||||
{
|
||||
if (clientId == NoDragger || !TryGetPlayerObject(clientId, out NetworkObject playerObject))
|
||||
return;
|
||||
|
||||
target += playerObject.transform.TransformPoint(dragOffset);
|
||||
forward += playerObject.transform.forward;
|
||||
validTargets++;
|
||||
}
|
||||
|
||||
@@ -221,15 +279,32 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
{
|
||||
if (physicsBody != null)
|
||||
{
|
||||
physicsBody.isKinematic = HasAnyDragger || !IsServer;
|
||||
physicsBody.linearVelocity = Vector3.zero;
|
||||
physicsBody.angularVelocity = Vector3.zero;
|
||||
bool shouldBeKinematic = HasAnyDragger || !IsServer;
|
||||
|
||||
if (physicsBody.isKinematic && !shouldBeKinematic)
|
||||
physicsBody.isKinematic = false;
|
||||
|
||||
if (!physicsBody.isKinematic)
|
||||
{
|
||||
physicsBody.linearVelocity = Vector3.zero;
|
||||
physicsBody.angularVelocity = Vector3.zero;
|
||||
}
|
||||
|
||||
physicsBody.isKinematic = shouldBeKinematic;
|
||||
}
|
||||
|
||||
if (HasAnyDragger)
|
||||
{
|
||||
dragVelocity = Vector3.zero;
|
||||
CacheGroundContactPoint();
|
||||
smoothedGroundNormal = physicsBody != null ? physicsBody.transform.up : Vector3.up;
|
||||
IgnoreCollisionsWithPlayers();
|
||||
}
|
||||
else
|
||||
{
|
||||
dragVelocity = Vector3.zero;
|
||||
RestorePlayerCollisions();
|
||||
}
|
||||
}
|
||||
|
||||
private void ResolvePhysicsReferences()
|
||||
@@ -239,6 +314,8 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
|
||||
if (objectColliders == null || objectColliders.Length == 0)
|
||||
objectColliders = GetComponentsInChildren<Collider>(true);
|
||||
|
||||
CacheGroundContactPoint();
|
||||
}
|
||||
|
||||
private void ApplyWeight()
|
||||
@@ -247,6 +324,178 @@ public sealed class NetworkDraggableInteractable : NetworkInteractable
|
||||
physicsBody.mass = Mathf.Max(0.1f, weight);
|
||||
}
|
||||
|
||||
private void FollowDragTarget(
|
||||
Vector3 target,
|
||||
Vector3 forward,
|
||||
float movementSpeed,
|
||||
Vector3 surfaceNormal)
|
||||
{
|
||||
Vector3 nextPosition = Vector3.SmoothDamp(
|
||||
physicsBody.position,
|
||||
target,
|
||||
ref dragVelocity,
|
||||
positionSmoothTime,
|
||||
movementSpeed,
|
||||
Time.fixedDeltaTime);
|
||||
|
||||
physicsBody.MovePosition(nextPosition);
|
||||
physicsBody.MoveRotation(CalculateDragRotation(forward, surfaceNormal));
|
||||
}
|
||||
|
||||
private void MoveAlongGround(
|
||||
Vector3 dragTarget,
|
||||
Vector3 forward,
|
||||
float movementSpeed)
|
||||
{
|
||||
Vector3 currentPosition = physicsBody.position;
|
||||
Vector3 planarTarget = new(dragTarget.x, currentPosition.y, dragTarget.z);
|
||||
Vector3 planarVelocity = new(dragVelocity.x, 0f, dragVelocity.z);
|
||||
Vector3 nextPlanarPosition = Vector3.SmoothDamp(
|
||||
currentPosition,
|
||||
planarTarget,
|
||||
ref planarVelocity,
|
||||
positionSmoothTime,
|
||||
movementSpeed,
|
||||
Time.fixedDeltaTime);
|
||||
nextPlanarPosition.y = currentPosition.y;
|
||||
dragVelocity = new Vector3(planarVelocity.x, dragVelocity.y, planarVelocity.z);
|
||||
|
||||
Vector3 probePosition = nextPlanarPosition;
|
||||
|
||||
if (!TryGetGroundSurface(probePosition, out Vector3 groundPoint, out Vector3 groundNormal))
|
||||
return;
|
||||
|
||||
Quaternion targetRotation = CalculateDragRotation(forward, groundNormal);
|
||||
Vector3 scaledContactPoint = Vector3.Scale(localGroundContactPoint, physicsBody.transform.lossyScale);
|
||||
float contactOffsetY = (targetRotation * scaledContactPoint).y;
|
||||
float targetHeight = groundPoint.y - contactOffsetY + groundClearance;
|
||||
float nextHeight = Mathf.MoveTowards(
|
||||
currentPosition.y,
|
||||
targetHeight,
|
||||
maximumGroundVerticalSpeed * Time.fixedDeltaTime);
|
||||
|
||||
physicsBody.MovePosition(new Vector3(nextPlanarPosition.x, nextHeight, nextPlanarPosition.z));
|
||||
|
||||
physicsBody.MoveRotation(targetRotation);
|
||||
}
|
||||
|
||||
private bool TryGetGroundSurface(
|
||||
Vector3 probePosition,
|
||||
out Vector3 groundPoint,
|
||||
out Vector3 groundNormal)
|
||||
{
|
||||
Vector3 origin = probePosition + Vector3.up * groundProbeHeight;
|
||||
float castDistance = groundProbeHeight + maximumGroundDrop;
|
||||
int hitCount = Physics.SphereCastNonAlloc(
|
||||
origin,
|
||||
groundProbeRadius,
|
||||
Vector3.down,
|
||||
groundHits,
|
||||
castDistance,
|
||||
groundLayers,
|
||||
QueryTriggerInteraction.Ignore);
|
||||
|
||||
float nearestDistance = float.PositiveInfinity;
|
||||
groundPoint = default;
|
||||
groundNormal = Vector3.up;
|
||||
|
||||
for (int index = 0; index < hitCount; index++)
|
||||
{
|
||||
RaycastHit hit = groundHits[index];
|
||||
if (hit.collider == null || IsOwnCollider(hit.collider) ||
|
||||
hit.collider.GetComponentInParent<CharacterController>() != null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (Vector3.Angle(Vector3.up, hit.normal) > maximumGroundAngle ||
|
||||
hit.distance >= nearestDistance)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
nearestDistance = hit.distance;
|
||||
groundPoint = hit.point;
|
||||
groundNormal = hit.normal;
|
||||
}
|
||||
|
||||
return !float.IsPositiveInfinity(nearestDistance);
|
||||
}
|
||||
|
||||
private Quaternion CalculateDragRotation(Vector3 forward, Vector3 groundNormal)
|
||||
{
|
||||
Vector3 targetUp = alignToGround ? groundNormal : Vector3.up;
|
||||
float normalBlend = 1f - Mathf.Exp(-groundAlignmentSpeed * Time.fixedDeltaTime);
|
||||
smoothedGroundNormal = Vector3.Slerp(
|
||||
smoothedGroundNormal,
|
||||
targetUp,
|
||||
normalBlend).normalized;
|
||||
|
||||
Vector3 surfaceForward = Vector3.ProjectOnPlane(forward, smoothedGroundNormal);
|
||||
if (surfaceForward.sqrMagnitude < 0.0001f)
|
||||
surfaceForward = Vector3.ProjectOnPlane(physicsBody.transform.forward, smoothedGroundNormal);
|
||||
|
||||
Quaternion desiredRotation = Quaternion.LookRotation(
|
||||
surfaceForward.normalized,
|
||||
smoothedGroundNormal) * Quaternion.Euler(rotationOffset);
|
||||
float rotationBlend = 1f - Mathf.Exp(-rotationFollowSpeed * Time.fixedDeltaTime);
|
||||
return Quaternion.Slerp(physicsBody.rotation, desiredRotation, rotationBlend);
|
||||
}
|
||||
|
||||
private void CacheGroundContactPoint()
|
||||
{
|
||||
if (physicsBody == null)
|
||||
return;
|
||||
|
||||
if (groundContactPoint != null)
|
||||
{
|
||||
localGroundContactPoint = physicsBody.transform.InverseTransformPoint(groundContactPoint.position);
|
||||
return;
|
||||
}
|
||||
|
||||
bool hasBounds = false;
|
||||
Bounds combinedBounds = default;
|
||||
|
||||
if (objectColliders != null)
|
||||
{
|
||||
foreach (Collider objectCollider in objectColliders)
|
||||
{
|
||||
if (objectCollider == null || objectCollider.isTrigger || !objectCollider.enabled)
|
||||
continue;
|
||||
|
||||
if (!hasBounds)
|
||||
{
|
||||
combinedBounds = objectCollider.bounds;
|
||||
hasBounds = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
combinedBounds.Encapsulate(objectCollider.bounds);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Vector3 contactWorldPosition = hasBounds
|
||||
? new Vector3(combinedBounds.center.x, combinedBounds.min.y, combinedBounds.center.z)
|
||||
: physicsBody.position;
|
||||
|
||||
localGroundContactPoint = physicsBody.transform.InverseTransformPoint(contactWorldPosition);
|
||||
}
|
||||
|
||||
private bool IsOwnCollider(Collider candidate)
|
||||
{
|
||||
if (objectColliders == null)
|
||||
return false;
|
||||
|
||||
foreach (Collider objectCollider in objectColliders)
|
||||
{
|
||||
if (objectCollider == candidate)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private void IgnoreCollisionsWithPlayers()
|
||||
{
|
||||
foreach (CharacterController playerCollider in FindObjectsByType<CharacterController>(
|
||||
|
||||
@@ -14,6 +14,12 @@ public abstract class NetworkHeldInteractable : NetworkInteractable
|
||||
[SerializeField] private Collider[] objectColliders;
|
||||
[SerializeField, Min(0.05f)] private float collisionRefreshInterval = 0.25f;
|
||||
|
||||
[Header("Holding Follow")]
|
||||
[SerializeField, Min(0.01f)] private float positionSmoothTime = 0.12f;
|
||||
[SerializeField, Min(0.1f)] private float maximumFollowSpeed = 12f;
|
||||
[SerializeField, Min(0.1f)] private float maximumFollowDistance = 1.25f;
|
||||
[SerializeField, Min(0.1f)] private float rotationFollowSpeed = 14f;
|
||||
|
||||
[Header("Throw")]
|
||||
[SerializeField, Min(0f)] private float throwForce = 6f;
|
||||
[SerializeField, Min(0f)] private float throwUpwardForce = 0.5f;
|
||||
@@ -25,6 +31,9 @@ public abstract class NetworkHeldInteractable : NetworkInteractable
|
||||
|
||||
private readonly HashSet<Collider> ignoredPlayerColliders = new();
|
||||
private float nextCollisionRefreshTime;
|
||||
private Vector3 followVelocity;
|
||||
private Vector3 previousHolderPosition;
|
||||
private bool hasPreviousHolderPosition;
|
||||
|
||||
protected abstract Vector3 HoldingOffset { get; }
|
||||
protected abstract string DropPrompt { get; }
|
||||
@@ -79,10 +88,9 @@ public abstract class NetworkHeldInteractable : NetworkInteractable
|
||||
return;
|
||||
}
|
||||
|
||||
FollowHolderTranslation(holder.transform.position);
|
||||
Transform anchor = ResolveHoldingAnchor(holder);
|
||||
transform.SetPositionAndRotation(
|
||||
anchor.TransformPoint(HoldingOffset),
|
||||
anchor.rotation);
|
||||
FollowHoldingAnchor(anchor);
|
||||
|
||||
if (Time.time >= nextCollisionRefreshTime)
|
||||
{
|
||||
@@ -175,16 +183,70 @@ public abstract class NetworkHeldInteractable : NetworkInteractable
|
||||
return cameraController != null ? cameraController.AimTransform : holder.transform;
|
||||
}
|
||||
|
||||
private void FollowHoldingAnchor(Transform anchor)
|
||||
{
|
||||
Vector3 targetPosition = anchor.TransformPoint(HoldingOffset);
|
||||
Vector3 targetDelta = targetPosition - transform.position;
|
||||
|
||||
if (targetDelta.sqrMagnitude > maximumFollowDistance * maximumFollowDistance)
|
||||
{
|
||||
transform.position = targetPosition -
|
||||
targetDelta.normalized * maximumFollowDistance;
|
||||
followVelocity = Vector3.zero;
|
||||
}
|
||||
|
||||
transform.position = Vector3.SmoothDamp(
|
||||
transform.position,
|
||||
targetPosition,
|
||||
ref followVelocity,
|
||||
positionSmoothTime,
|
||||
maximumFollowSpeed,
|
||||
Time.deltaTime);
|
||||
|
||||
float rotationBlend = 1f - Mathf.Exp(-rotationFollowSpeed * Time.deltaTime);
|
||||
transform.rotation = Quaternion.Slerp(
|
||||
transform.rotation,
|
||||
anchor.rotation,
|
||||
rotationBlend);
|
||||
}
|
||||
|
||||
private void FollowHolderTranslation(Vector3 holderPosition)
|
||||
{
|
||||
if (!hasPreviousHolderPosition)
|
||||
{
|
||||
previousHolderPosition = holderPosition;
|
||||
hasPreviousHolderPosition = true;
|
||||
return;
|
||||
}
|
||||
|
||||
Vector3 holderDelta = holderPosition - previousHolderPosition;
|
||||
previousHolderPosition = holderPosition;
|
||||
|
||||
transform.position += holderDelta;
|
||||
}
|
||||
|
||||
private void HandleHolderChanged(ulong _, ulong currentHolder) =>
|
||||
ApplyHoldingState(currentHolder != NoHolder);
|
||||
|
||||
private void ApplyHoldingState(bool isHeld)
|
||||
{
|
||||
followVelocity = Vector3.zero;
|
||||
hasPreviousHolderPosition = false;
|
||||
|
||||
if (physicsBody != null)
|
||||
{
|
||||
physicsBody.isKinematic = isHeld || !IsServer;
|
||||
physicsBody.linearVelocity = Vector3.zero;
|
||||
physicsBody.angularVelocity = Vector3.zero;
|
||||
bool shouldBeKinematic = isHeld || !IsServer;
|
||||
|
||||
if (physicsBody.isKinematic && !shouldBeKinematic)
|
||||
physicsBody.isKinematic = false;
|
||||
|
||||
if (!physicsBody.isKinematic)
|
||||
{
|
||||
physicsBody.linearVelocity = Vector3.zero;
|
||||
physicsBody.angularVelocity = Vector3.zero;
|
||||
}
|
||||
|
||||
physicsBody.isKinematic = shouldBeKinematic;
|
||||
}
|
||||
|
||||
if (isHeld)
|
||||
|
||||
@@ -16,6 +16,7 @@ public sealed class FirstPersonCameraController : NetworkBehaviour, IPlayerSyste
|
||||
private float pitch;
|
||||
private bool isInitialized;
|
||||
|
||||
public Camera PlayerCamera => playerCamera;
|
||||
public Transform AimTransform => playerCamera != null ? playerCamera.transform : transform;
|
||||
public Vector3 AimForward => AimTransform.forward;
|
||||
|
||||
@@ -38,6 +39,8 @@ public sealed class FirstPersonCameraController : NetworkBehaviour, IPlayerSyste
|
||||
if (!isLocalPlayer)
|
||||
return;
|
||||
|
||||
LocalPlayerCameraRegistry.Register(playerCamera);
|
||||
|
||||
if (playerRenderer != null)
|
||||
playerRenderer.enabled = false;
|
||||
|
||||
@@ -98,6 +101,7 @@ public sealed class FirstPersonCameraController : NetworkBehaviour, IPlayerSyste
|
||||
|
||||
if (IsOwner)
|
||||
{
|
||||
LocalPlayerCameraRegistry.Unregister(playerCamera);
|
||||
Cursor.lockState = CursorLockMode.None;
|
||||
Cursor.visible = true;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
public static class LocalPlayerCameraRegistry
|
||||
{
|
||||
public static Camera Current { get; private set; }
|
||||
|
||||
public static event Action<Camera> Changed;
|
||||
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
|
||||
private static void ResetState()
|
||||
{
|
||||
Current = null;
|
||||
Changed = null;
|
||||
}
|
||||
|
||||
public static void Register(Camera camera)
|
||||
{
|
||||
if (camera == null || Current == camera)
|
||||
return;
|
||||
|
||||
Current = camera;
|
||||
Changed?.Invoke(Current);
|
||||
}
|
||||
|
||||
public static void Unregister(Camera camera)
|
||||
{
|
||||
if (Current != camera)
|
||||
return;
|
||||
|
||||
Current = null;
|
||||
Changed?.Invoke(null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1e3d71c247514be98407f39adb750371
|
||||
@@ -0,0 +1,52 @@
|
||||
using UnityEngine;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
[RequireComponent(typeof(Canvas))]
|
||||
public sealed class WorldSpaceCanvasCameraBinder : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Canvas targetCanvas;
|
||||
|
||||
public Canvas TargetCanvas => targetCanvas;
|
||||
|
||||
private void Reset()
|
||||
{
|
||||
targetCanvas = GetComponent<Canvas>();
|
||||
RefreshBinding();
|
||||
}
|
||||
|
||||
private void Awake() => ResolveCanvas();
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
LocalPlayerCameraRegistry.Changed += HandleLocalCameraChanged;
|
||||
RefreshBinding();
|
||||
}
|
||||
|
||||
private void OnDisable() =>
|
||||
LocalPlayerCameraRegistry.Changed -= HandleLocalCameraChanged;
|
||||
|
||||
public void RefreshBinding()
|
||||
{
|
||||
ResolveCanvas();
|
||||
|
||||
if (targetCanvas == null || targetCanvas.renderMode != RenderMode.WorldSpace)
|
||||
return;
|
||||
|
||||
targetCanvas.worldCamera = LocalPlayerCameraRegistry.Current;
|
||||
}
|
||||
|
||||
private void ResolveCanvas()
|
||||
{
|
||||
if (targetCanvas == null)
|
||||
targetCanvas = GetComponent<Canvas>();
|
||||
}
|
||||
|
||||
private void HandleLocalCameraChanged(Camera localCamera)
|
||||
{
|
||||
if (targetCanvas != null && targetCanvas.renderMode == RenderMode.WorldSpace)
|
||||
targetCanvas.worldCamera = localCamera;
|
||||
}
|
||||
|
||||
[ContextMenu("Refresh Local Player Camera")]
|
||||
private void RefreshFromContextMenu() => RefreshBinding();
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 271d68bfa3ee4606a3ca57fa19150a49
|
||||
@@ -20,6 +20,8 @@ public sealed class FurnacePanelUIController : MonoBehaviour, IGlobalUISectionCo
|
||||
|
||||
if (furnace != null)
|
||||
furnace.Changed += Refresh;
|
||||
if (view != null)
|
||||
view.StartRequested += StartSmelting;
|
||||
|
||||
GlobalUIController.Instance?.Register(this);
|
||||
|
||||
@@ -30,6 +32,8 @@ public sealed class FurnacePanelUIController : MonoBehaviour, IGlobalUISectionCo
|
||||
{
|
||||
if (furnace != null)
|
||||
furnace.Changed -= Refresh;
|
||||
if (view != null)
|
||||
view.StartRequested -= StartSmelting;
|
||||
|
||||
GlobalUIController.Instance?.Unregister(this);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
@@ -12,6 +13,20 @@ public sealed class FurnacePanelUIView : MonoBehaviour
|
||||
[SerializeField] private Image progressImage;
|
||||
[SerializeField] private Button startButton;
|
||||
|
||||
public event Action StartRequested;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if (startButton != null)
|
||||
startButton.onClick.AddListener(HandleStartClicked);
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
if (startButton != null)
|
||||
startButton.onClick.RemoveListener(HandleStartClicked);
|
||||
}
|
||||
|
||||
public void Render(
|
||||
float storedMetal,
|
||||
float metalCapacity,
|
||||
@@ -48,4 +63,6 @@ public sealed class FurnacePanelUIView : MonoBehaviour
|
||||
if (startButton != null)
|
||||
startButton.interactable = canStart;
|
||||
}
|
||||
|
||||
private void HandleStartClicked() => StartRequested?.Invoke();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user