feat: ship particle effects, base properties, gravity fix

All ships now have their own properties, which are modifiers for the base ship properties.
The base behaviour of all ships can now be easily changed, while the individual differences are still respected.

Ship states now trigger particle emissions & effects. This is still messy and mixed with
sounds. Will be overhauled once ship state machine is introduced.

To calculate gravity you now need to specify the gravity source transform.
This commit is contained in:
Jakob Feldmann 2024-05-05 17:48:27 +02:00
parent 17aa5593ff
commit 5278d5ba81
23 changed files with 4098 additions and 96 deletions

View File

@ -220,6 +220,10 @@ Transform:
- {fileID: 8593468838974035070}
- {fileID: 5739110816181282754}
- {fileID: 3489597143813469327}
- {fileID: 4542710706480618604}
- {fileID: 7971143227516595385}
- {fileID: 3078445893664878222}
- {fileID: 6780256004419462580}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &4827981227876901225
@ -306,9 +310,13 @@ MonoBehaviour:
_componentIndexCache: 0
_addedNetworkObject: {fileID: 4320456058255827552}
_networkObjectCache: {fileID: 4320456058255827552}
props: {fileID: 11400000, guid: 6de7cad1d98c7d546afb96cf047c2b33, type: 2}
props: {fileID: 11400000, guid: 046eba218bb1e8946bee79bd55fd4bdd, type: 2}
boostUI: {fileID: 0}
cameraOperator: {fileID: 0}
boostEffect: {fileID: 7234768050496314884}
gravityEffect: {fileID: 4872706334040053047}
jetFlameEffect: {fileID: 4832079438170929303}
smokeTrailEffect: {fileID: 3500843490324877803}
--- !u!114 &4320456058255827552
MonoBehaviour:
m_ObjectHideFlags: 0
@ -347,7 +355,7 @@ MonoBehaviour:
_ownerInterpolation: 1
_enableTeleport: 0
_teleportThreshold: 1
<PrefabId>k__BackingField: 9
<PrefabId>k__BackingField: 5
<SpawnableCollectionId>k__BackingField: 0
_scenePathHash: 0
<SceneId>k__BackingField: 0
@ -594,6 +602,156 @@ SphereCollider:
serializedVersion: 3
m_Radius: 0.22474784
m_Center: {x: 0.01105564, y: 0.31469262, z: 0}
--- !u!1001 &123332957444049686
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 5747506880537754056, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_Name
value: Gravity Line Particles
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalPosition.x
value: 0.21
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalPosition.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalPosition.z
value: -1
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
--- !u!198 &4872706334040053047 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 4767480441459301921, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
m_PrefabInstance: {fileID: 123332957444049686}
m_PrefabAsset: {fileID: 0}
--- !u!4 &6780256004419462580 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
m_PrefabInstance: {fileID: 123332957444049686}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &754241372986275310
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 4109326443333075970, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_Name
value: Boost Shock Wave Particles
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalPosition.y
value: 2.385
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalPosition.z
value: -0.4
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7931003585827073002, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: looping
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7931003585827073002, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: lengthInSec
value: 0.8
objectReference: {fileID: 0}
- target: {fileID: 7931003585827073002, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: EmissionModule.m_Bursts.Array.data[1].time
value: 0.2
objectReference: {fileID: 0}
- target: {fileID: 7931003585827073002, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: EmissionModule.m_Bursts.Array.data[2].time
value: 0.4
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
--- !u!198 &7234768050496314884 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 7931003585827073002, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
m_PrefabInstance: {fileID: 754241372986275310}
m_PrefabAsset: {fileID: 0}
--- !u!4 &7971143227516595385 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
m_PrefabInstance: {fileID: 754241372986275310}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1378049901460532383
PrefabInstance:
m_ObjectHideFlags: 0
@ -654,6 +812,10 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -6896813348456795565, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 9ef1ef5754926b34e93f31acca505d0a, type: 2}
- target: {fileID: -1642744634756266859, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Materials.Array.size
value: 1
@ -662,6 +824,10 @@ PrefabInstance:
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 6f6e84aae9fb6894bb48024ee9b61470, type: 2}
- target: {fileID: -1642744634756266859, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Materials.Array.data[1]
value:
objectReference: {fileID: -876546973899608171, guid: 894e255bca895714c929238ea0e6273f, type: 3}
- target: {fileID: 919132149155446097, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Name
value: Spaceship9
@ -688,3 +854,137 @@ Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
m_PrefabInstance: {fileID: 1378049901460532383}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2003113329371731864
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalPosition.x
value: -0.02
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalPosition.y
value: -2.464
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalPosition.z
value: -0.563
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8121523519804063547, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_Name
value: Jet Flame Particles
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
--- !u!4 &3078445893664878222 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
m_PrefabInstance: {fileID: 2003113329371731864}
m_PrefabAsset: {fileID: 0}
--- !u!198 &4832079438170929303 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
m_PrefabInstance: {fileID: 2003113329371731864}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &3400143175839768829
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 286824833114894065, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_Name
value: Smoke Trail Particles
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalPosition.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalPosition.y
value: -2.277
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalPosition.z
value: -0.451
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
--- !u!198 &3500843490324877803 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 2286353817893630230, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
m_PrefabInstance: {fileID: 3400143175839768829}
m_PrefabAsset: {fileID: 0}
--- !u!4 &4542710706480618604 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
m_PrefabInstance: {fileID: 3400143175839768829}
m_PrefabAsset: {fileID: 0}

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -95,6 +95,10 @@ Transform:
- {fileID: 3841992206182845443}
- {fileID: 6616209870729500669}
- {fileID: 4731773442997728510}
- {fileID: 4918238313528133406}
- {fileID: 147643063832646000}
- {fileID: 7010845891763867175}
- {fileID: 6328183573752812199}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!54 &4827981227876901225
@ -181,9 +185,13 @@ MonoBehaviour:
_componentIndexCache: 0
_addedNetworkObject: {fileID: 394654179909484550}
_networkObjectCache: {fileID: 394654179909484550}
props: {fileID: 11400000, guid: f5590fbe0f33c0643a8df2f13af5538a, type: 2}
props: {fileID: 11400000, guid: 04ffb42925f036949866663c0311ac6b, type: 2}
boostUI: {fileID: 0}
cameraOperator: {fileID: 0}
boostEffect: {fileID: 7760749495303355546}
gravityEffect: {fileID: 5356225948148490788}
jetFlameEffect: {fileID: 3312185522185408775}
smokeTrailEffect: {fileID: 978131449706323191}
--- !u!114 &394654179909484550
MonoBehaviour:
m_ObjectHideFlags: 0
@ -222,7 +230,7 @@ MonoBehaviour:
_ownerInterpolation: 1
_enableTeleport: 0
_teleportThreshold: 1
<PrefabId>k__BackingField: 2
<PrefabId>k__BackingField: 1
<SpawnableCollectionId>k__BackingField: 0
_scenePathHash: 0
<SceneId>k__BackingField: 0
@ -594,6 +602,211 @@ SphereCollider:
serializedVersion: 3
m_Radius: 0.22474784
m_Center: {x: 0.01105564, y: 0.31469262, z: 0}
--- !u!1001 &406218082282592112
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 4109326443333075970, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_Name
value: Boost Shock Wave Particles
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalPosition.y
value: 2.385
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalPosition.z
value: -0.4
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
--- !u!4 &7010845891763867175 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7271248515473135959, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
m_PrefabInstance: {fileID: 406218082282592112}
m_PrefabAsset: {fileID: 0}
--- !u!198 &7760749495303355546 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 7931003585827073002, guid: 24a81306cc1fbbd4b8f10022e2d6ee0d, type: 3}
m_PrefabInstance: {fileID: 406218082282592112}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &611466096646765573
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 722146712966802913, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_Materials.Array.data[1]
value:
objectReference: {fileID: 2100000, guid: 41bd73f1999ec5f42a8e9dfac74c19b2, type: 2}
- target: {fileID: 5747506880537754056, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_Name
value: Gravity Line Particles
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalPosition.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalPosition.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalPosition.z
value: -1
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
--- !u!198 &5356225948148490788 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 4767480441459301921, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
m_PrefabInstance: {fileID: 611466096646765573}
m_PrefabAsset: {fileID: 0}
--- !u!4 &6328183573752812199 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6894558316197621410, guid: 5075d8b26bc537c439b56964f382020e, type: 3}
m_PrefabInstance: {fileID: 611466096646765573}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1308797000485596641
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 286824833114894065, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_Name
value: Smoke Trail Particles
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalPosition.y
value: -2.3
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalPosition.z
value: -0.451
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
--- !u!4 &147643063832646000 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1163423376577002641, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
m_PrefabInstance: {fileID: 1308797000485596641}
m_PrefabAsset: {fileID: 0}
--- !u!198 &978131449706323191 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 2286353817893630230, guid: 98bf6d3624da8d54fbe33787e003ef60, type: 3}
m_PrefabInstance: {fileID: 1308797000485596641}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1578594390765257941
PrefabInstance:
m_ObjectHideFlags: 0
@ -654,6 +867,14 @@ PrefabInstance:
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -6896813348456795565, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Materials.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: -6896813348456795565, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 9ef1ef5754926b34e93f31acca505d0a, type: 2}
- target: {fileID: -1642744634756266859, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Materials.Array.size
value: 1
@ -662,6 +883,10 @@ PrefabInstance:
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: 63912637f2eed304ebf5d1888fb559e0, type: 2}
- target: {fileID: -1642744634756266859, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Materials.Array.data[1]
value:
objectReference: {fileID: 2100000, guid: 3e4299b4bfeaee34db1d6cf6c7b360bd, type: 2}
- target: {fileID: 919132149155446097, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
propertyPath: m_Name
value: Spaceship9
@ -688,3 +913,434 @@ Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 40527c707fffde84c99533c25bbcd8cd, type: 3}
m_PrefabInstance: {fileID: 1578594390765257941}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &8445865029439684104
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 5042970769659716555}
m_Modifications:
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_SortMode
value: 3
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_AllowRoll
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_RenderMode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LengthScale
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_SortingFudge
value: 100
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_VelocityScale
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_MinParticleSize
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_NormalDirection
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_RenderAlignment
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_FreeformStretching
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_Materials.Array.data[0]
value:
objectReference: {fileID: 2100000, guid: aa2cc3c23701273408a8b4995c0588e9, type: 2}
- target: {fileID: 3534432400413253871, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_RotateWithStretchDirection
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalScale.x
value: 1.3
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalPosition.x
value: -0.02
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalPosition.y
value: -2.464
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalPosition.z
value: -0.563
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: playOnAwake
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ShapeModule.type
value: 4
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ShapeModule.angle
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ColorModule.enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ForceModule.enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: emitterVelocityMode
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ForceModule.y.scalar
value: -10
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ShapeModule.arc.mode
value: 2
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ShapeModule.arc.spread
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.y.minScalar
value: 2
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.scalar
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.separateAxes
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: VelocityModule.x.scalar
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: VelocityModule.y.scalar
value: -1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ForceModule.inWorldSpace
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ShapeModule.m_Rotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ShapeModule.radius.value
value: 0.0001
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.y.minMaxState
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.z.minMaxState
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ShapeModule.radiusThickness
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: VelocityModule.inWorldSpace
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.minMaxState
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.maxNumParticles
value: 1000
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startSpeed.scalar
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: EmissionModule.rateOverTime.scalar
value: 200
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.scalar
value: 0.6
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: LifetimeByEmitterSpeedModule.enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.minScalar
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: LifetimeByEmitterSpeedModule.m_Range.x
value: 0.3
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: LifetimeByEmitterSpeedModule.m_Range.y
value: 0.6
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ColorModule.gradient.maxGradient.atime1
value: 46183
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ColorModule.gradient.maxGradient.ctime1
value: 65535
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ColorModule.gradient.maxGradient.key1.a
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.minMaxState
value: 3
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.size
value: 2
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: ColorModule.gradient.maxGradient.m_ColorSpace
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.y.maxCurve.m_Curve.Array.data[0].value
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.z.maxCurve.m_Curve.Array.data[0].value
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.z.maxCurve.m_Curve.Array.data[1].value
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.y.maxCurve.m_Curve.Array.data[1].inSlope
value: 0.06638029
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.z.maxCurve.m_Curve.Array.data[1].inSlope
value: 0.027077474
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[0].time
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[1].time
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[2].time
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[3].time
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.y.maxCurve.m_Curve.Array.data[0].outSlope
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.y.maxCurve.m_Curve.Array.data[1].inWeight
value: 0.13575846
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.y.maxCurve.m_Curve.Array.data[1].outSlope
value: 0.06638029
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.z.maxCurve.m_Curve.Array.data[0].outSlope
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.z.maxCurve.m_Curve.Array.data[1].inWeight
value: 0.16299033
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.z.maxCurve.m_Curve.Array.data[1].outSlope
value: 0.027077474
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[0].value
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[1].value
value: 0.22070312
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[2].value
value: 0.059574336
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[3].value
value: 0.059574336
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.maxCurve.m_Curve.Array.size
value: 3
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[0].inSlope
value: -0.033802647
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[1].inSlope
value: -0.0012465196
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[2].inSlope
value: 0.23911521
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[3].inSlope
value: 0.23911521
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[0].inWeight
value: 0.33333334
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[0].outSlope
value: -0.033802647
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[1].inWeight
value: 0.14813662
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[1].outSlope
value: -0.0012465196
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[2].inWeight
value: 0.11701953
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[2].outSlope
value: 0.23911521
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[3].inWeight
value: 0.11701953
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[3].outSlope
value: 0.23911521
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[0].outWeight
value: 0.91807276
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[1].outWeight
value: 0.114722714
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[2].outWeight
value: 0.114722714
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: SizeModule.curve.maxCurve.m_Curve.Array.data[3].outWeight
value: 0.114722714
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.maxCurve.m_Curve.Array.data[1].time
value: 0.4984321
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.maxCurve.m_Curve.Array.data[2].time
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.maxCurve.m_Curve.Array.data[1].value
value: 0.83526725
objectReference: {fileID: 0}
- target: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: InitialModule.startLifetime.maxCurve.m_Curve.Array.data[2].value
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8121523519804063547, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
propertyPath: m_Name
value: Jet Flame Particles
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
--- !u!198 &3312185522185408775 stripped
ParticleSystem:
m_CorrespondingSourceObject: {fileID: 6395817701140918031, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
m_PrefabInstance: {fileID: 8445865029439684104}
m_PrefabAsset: {fileID: 0}
--- !u!4 &4918238313528133406 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3563661011899316502, guid: a85c082f5fc6ca4428f78f385e6b42a9, type: 3}
m_PrefabInstance: {fileID: 8445865029439684104}
m_PrefabAsset: {fileID: 0}

View File

@ -0,0 +1,33 @@
%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: d4e63b7217e6a2f499d6da3911f6da33, type: 3}
m_Name: BaseShip
m_EditorClassIdentifier:
thrustAcceleration: 1200
steerVelocity: 360
normalMaxVelocity: 18
absolutMaxVelocity: 27
antiDriftAmount: 8
minAntiDriftFactor: 0.01
normalDrag: 5
maximumDrag: 10
torqueDrag: 0.2
maxBoostCapacity: 4
minBoostCapacity: 0.5
boostMagnitude: 2
outsideBoostRate: 0
boostAntiGravityFactor: 0.5
stunLooseControlFactor: 0.1
tackleCriticalStunTime: 0.6
tackleBodyStunTime: 0.3
criticalTacklePowerFactor: 60
normalTacklePowerFactor: 100

View File

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

View File

@ -12,24 +12,25 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f5cabb9de76fbfa49b5ccac30cd25c68, type: 3}
m_Name: BlueShip
m_EditorClassIdentifier:
shipObject: {fileID: 1372816401649438144, guid: 65cd4fa5e050652409dd9b062365c7e8, type: 3}
baseProps: {fileID: 11400000, guid: 8bb9b96c7ef17e94bbd897292f08cd4e, type: 2}
shipPrefab: {fileID: 1372816401649438144, guid: 65cd4fa5e050652409dd9b062365c7e8, type: 3}
shipName: Blue Blitz
thrustAcceleration: 1275
steerVelocity: 300
normalMaxVelocity: 22
absolutMaxVelocity: 40
antiDriftAmount: 6
minAntiDriftFactor: 0.1
normalDrag: 3
maximumDrag: 6
torqueDrag: 10
maxBoostCapacity: 3
minBoostCapacity: 0.6
boostMagnitude: 2.5
outsideBoostRate: 0
boostAntiGravityFactor: 0.8
stunLooseControlFactor: 0.1
tackleCriticalStunTime: 0.6
tackleBodyStunTime: 0.2
criticalTacklePowerFactor: 60
normalTacklePowerFactor: 30
thrustAccelerationModifier: 1
steerVelocityModifier: 1
normalMaxVelocityModifier: 1
absolutMaxVelocityModifier: 1
antiDriftAmountModifier: 1
minAntiDriftFactorModifier: 1
normalDragModifier: 1
maximumDragModifier: 1
torqueDragModifier: 1
maxBoostCapacityModifier: 1
minBoostCapacityModifier: 1
boostMagnitudeModifier: 1
outsideBoostRateModifier: 1
boostAntiGravityFactorModifier: 1
stunLooseControlFactorModifier: 1
tackleCriticalStunTimeModifier: 1
tackleBodyStunTimeModifier: 1
criticalTacklePowerFactorModifier: 1
normalTacklePowerFactorModifier: 1

View File

@ -1,7 +1,5 @@
fileFormatVersion: 2
guid: 6de7cad1d98c7d546afb96cf047c2b33
labels:
- Character
guid: 046eba218bb1e8946bee79bd55fd4bdd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -0,0 +1,36 @@
%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: f5cabb9de76fbfa49b5ccac30cd25c68, type: 3}
m_Name: GreenShip
m_EditorClassIdentifier:
baseProps: {fileID: 11400000, guid: 8bb9b96c7ef17e94bbd897292f08cd4e, type: 2}
shipPrefab: {fileID: 1372816401649438144, guid: 9f3e27e33167d704e941e42ded557111, type: 3}
shipName: Green Danger
thrustAccelerationModifier: 1
steerVelocityModifier: 1
normalMaxVelocityModifier: 1
absolutMaxVelocityModifier: 1
antiDriftAmountModifier: 1
minAntiDriftFactorModifier: 1
normalDragModifier: 1
maximumDragModifier: 1
torqueDragModifier: 1
maxBoostCapacityModifier: 1
minBoostCapacityModifier: 1
boostMagnitudeModifier: 1
outsideBoostRateModifier: 1
boostAntiGravityFactorModifier: 1
stunLooseControlFactorModifier: 1
tackleCriticalStunTimeModifier: 1
tackleBodyStunTimeModifier: 1
criticalTacklePowerFactorModifier: 1
normalTacklePowerFactorModifier: 1

View File

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

View File

@ -0,0 +1,36 @@
%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: f5cabb9de76fbfa49b5ccac30cd25c68, type: 3}
m_Name: PurpleShip
m_EditorClassIdentifier:
baseProps: {fileID: 11400000, guid: 8bb9b96c7ef17e94bbd897292f08cd4e, type: 2}
shipPrefab: {fileID: 1372816401649438144, guid: 5934082513feac04a9b875fc86abe70b, type: 3}
shipName: Purple Haze
thrustAccelerationModifier: 1
steerVelocityModifier: 1
normalMaxVelocityModifier: 1
absolutMaxVelocityModifier: 1
antiDriftAmountModifier: 1
minAntiDriftFactorModifier: 1
normalDragModifier: 1
maximumDragModifier: 1
torqueDragModifier: 1
maxBoostCapacityModifier: 1
minBoostCapacityModifier: 1
boostMagnitudeModifier: 1
outsideBoostRateModifier: 1
boostAntiGravityFactorModifier: 1
stunLooseControlFactorModifier: 1
tackleCriticalStunTimeModifier: 1
tackleBodyStunTimeModifier: 1
criticalTacklePowerFactorModifier: 1
normalTacklePowerFactorModifier: 1

View File

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

View File

@ -12,24 +12,25 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f5cabb9de76fbfa49b5ccac30cd25c68, type: 3}
m_Name: RedShip
m_EditorClassIdentifier:
shipObject: {fileID: 1372816401649438144, guid: 46f84e56340e83e4ba7c6abbccd2ae3f, type: 3}
baseProps: {fileID: 11400000, guid: 8bb9b96c7ef17e94bbd897292f08cd4e, type: 2}
shipPrefab: {fileID: 1372816401649438144, guid: 46f84e56340e83e4ba7c6abbccd2ae3f, type: 3}
shipName: Red Menace
thrustAcceleration: 1300
steerVelocity: 300
normalMaxVelocity: 25
absolutMaxVelocity: 42
antiDriftAmount: 9
minAntiDriftFactor: 0.01
normalDrag: 3
maximumDrag: 6
torqueDrag: 10
maxBoostCapacity: 3
minBoostCapacity: 0.6
boostMagnitude: 2.5
outsideBoostRate: 0
boostAntiGravityFactor: 0.8
stunLooseControlFactor: 0.1
tackleCriticalStunTime: 0.6
tackleBodyStunTime: 0.2
criticalTacklePowerFactor: 65
normalTacklePowerFactor: 32
thrustAccelerationModifier: 1
steerVelocityModifier: 1
normalMaxVelocityModifier: 1
absolutMaxVelocityModifier: 1
antiDriftAmountModifier: 1
minAntiDriftFactorModifier: 1
normalDragModifier: 1
maximumDragModifier: 1
torqueDragModifier: 1
maxBoostCapacityModifier: 1
minBoostCapacityModifier: 1
boostMagnitudeModifier: 1
outsideBoostRateModifier: 1
boostAntiGravityFactorModifier: 1
stunLooseControlFactorModifier: 1
tackleCriticalStunTimeModifier: 1
tackleBodyStunTimeModifier: 1
criticalTacklePowerFactorModifier: 1
normalTacklePowerFactorModifier: 1

View File

@ -1,7 +1,5 @@
fileFormatVersion: 2
guid: f5590fbe0f33c0643a8df2f13af5538a
labels:
- Character
guid: 04ffb42925f036949866663c0311ac6b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000

View File

@ -5,9 +5,10 @@ using UnityEngine;
public class AffectingForcesManager : MonoBehaviour
{
public enum Zone { NimbleZone, OutsideZone, UninitializedZone }
private Dictionary<int, Vector3> impulseForces = new Dictionary<int, Vector3>();
private Dictionary<int, Func<Transform, Vector3>> currentGravity = new Dictionary<int, Func<Transform, Vector3>>();
private Dictionary<int, Zone> zoneInhabitants = new Dictionary<int, Zone>();
private readonly Dictionary<int, Vector3> impulseForces = new();
private readonly Dictionary<int, Func<Transform, Transform, Vector3>> currentGravity = new();
private readonly Dictionary<int, Transform> currentGravitySource = new();
private readonly Dictionary<int, Zone> zoneInhabitants = new();
public Zone GetZoneOfInstance(int id)
{
@ -36,9 +37,10 @@ public class AffectingForcesManager : MonoBehaviour
zoneInhabitants[instnaceID] = zone;
}
public void SetGravityForInstance(int instanceID, Func<Transform, Vector3> gravityFunction)
public void SetGravityForInstance(int instanceID, Func<Transform, Transform, Vector3> gravityFunction, Transform gravitySource)
{
currentGravity[instanceID] = gravityFunction;
currentGravitySource[instanceID] = gravitySource;
}
public Vector3 GetImpulseForInstance(int instanceID)
@ -50,12 +52,20 @@ public class AffectingForcesManager : MonoBehaviour
return new Vector3();
}
public Func<Transform, Vector3> GetGravityForInstance(int instanceID)
public Func<Transform, Transform, Vector3> GetGravityForInstance(int instanceID)
{
if (currentGravity.ContainsKey(instanceID))
{
return currentGravity[instanceID];
}
return new Func<Transform, Vector3>(position => new Vector3());
return new Func<Transform, Transform, Vector3>((gravitySource, target) => new Vector3());
}
public Transform GetGravitySourceForInstance(int instanceID)
{
if (currentGravitySource.ContainsKey(instanceID))
{
return currentGravitySource[instanceID];
}
return transform;
}
}

View File

@ -3,12 +3,15 @@ using System.Reflection;
using log4net;
using Managers;
using Unity.Mathematics;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UIElements;
using static AffectingForcesManager;
public class NimbleZoneDetection : MonoBehaviour
{
private static ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static Transform _nimbleZoneTransform;
public AffectingForcesManager forcesManager;
public GameObject renderedZoneObject;
@ -53,45 +56,48 @@ public class NimbleZoneDetection : MonoBehaviour
{
meshRenderer = renderedZoneObject.GetComponent<MeshRenderer>();
material = meshRenderer.material;
_nimbleZoneTransform = gameObject.transform;
ResetRippleShaderProperties();
}
/// <summary>
/// Array of the available gravities.
/// </summary>
private Func<Transform, Vector3>[] gravityFunctions =
private Func<Transform, Transform, Vector3>[] gravityFunctions =
{ DownGravity, NoGravity, InwardsGravity, OutwardsGravity };
/// <summary>
/// Function which returns a gravity zero vector.
/// </summary>
private static Func<Transform, Vector3> NoGravity =
new(transform => new Vector3());
private static readonly Func<Transform, Transform, Vector3> NoGravity =
new((gravitySource, target) => new Vector3());
/// <summary>
/// Function which returns a gravity vector downwards, depending
/// on the parent transforms rotation.
/// The parenting transform for a ship is the arena it's in.
/// </summary>
private static Func<Transform, Vector3> DownGravity =
new(transform => transform.parent.rotation * Vector3.down * gravityFactor);
private static readonly Func<Transform, Transform, Vector3> DownGravity =
new((gravitySource, target) =>
gravitySource.rotation * Vector3.down * gravityFactor);
/// <summary>
/// Function which returns a gravity vector towards the center of the parenting transform.
/// The parenting transform for a ship is the arena it's in.
/// </summary>
private static Func<Transform, Vector3> InwardsGravity =
new(transform => (transform.position - transform.parent.position).normalized * -gravityFactor);
private static readonly Func<Transform, Transform, Vector3> InwardsGravity =
new((gravitySource, target) =>
(target.position - gravitySource.position).normalized * -gravityFactor);
/// <summary>
/// Function which returns a gravity vector outwards from the center of the parenting transform.
/// The parenting transform for a ship is the arena it's in.
/// </summary>
private static Func<Transform, Vector3> OutwardsGravity =
new Func<Transform, Vector3>(transform =>
(transform.position - transform.parent.position).normalized * gravityFactor);
private static readonly Func<Transform, Transform, Vector3> OutwardsGravity =
new((gravitySource, target) =>
(target.position - gravitySource.position).normalized * gravityFactor);
public Func<Transform, Vector3> GetGravityFunction(Gravities gravity)
public Func<Transform, Transform, Vector3> GetGravityFunction(Gravities gravity)
{
return gravityFunctions[(int)gravity];
}
@ -107,7 +113,7 @@ public class NimbleZoneDetection : MonoBehaviour
}
if (collider.tag == "Ship")
{
forcesManager.SetGravityForInstance(instanceID, NoGravity);
forcesManager.SetGravityForInstance(instanceID, NoGravity, transform);
forcesManager.SetZoneForInstance(instanceID, zone);
}
}
@ -123,7 +129,7 @@ public class NimbleZoneDetection : MonoBehaviour
if (collider.tag == "Ship")
{
forcesManager.SetGravityForInstance(instanceID,
GetGravityFunction(outsideGravityFunction));
GetGravityFunction(outsideGravityFunction), transform);
forcesManager.SetZoneForInstance(instanceID, Zone.OutsideZone);
}
}

View File

@ -0,0 +1,49 @@
using ShipHandling;
using UnityEngine;
/// <summary>
/// Contains everything what makes a ship a ship, from the ship actor/3D-Model prefab to all the
/// properties which are unique to it's controls and behavior.
/// </summary>
[CreateAssetMenu(fileName = "BaseShip", menuName = "ScriptableObjects/BaseShip")]
public class BaseShipProperties : ScriptableObject
{
[Tooltip("The acceleration applied on thrust input.")]
public float thrustAcceleration = 2000;
[Tooltip("The velocity with which the character can rotate around it's center.")]
public float steerVelocity = 360;
[Tooltip("The standard limit of character velocity.")]
public float normalMaxVelocity = 15f;
[Tooltip("The absolute maximum of character velocity (enforced by drag).")]
public float absolutMaxVelocity = 25f;
[Tooltip("The amount to which the drift of the character is reduced when anti-drift is active.")]
public float antiDriftAmount = 12;
[Tooltip("The amount to which the drift of the character is always reduced.")]
public float minAntiDriftFactor = 0.03f;
[Tooltip("The drag which acts opposite to the characters movement direction normally.")]
public float normalDrag = 5f;
[Tooltip("The maximum drag which can act opposite to the characters movement direction.")]
public float maximumDrag = 10f;
[Tooltip("The drag which acts opposite to the characters rotation direction normally.")]
public float torqueDrag = 0.2f;
[Tooltip("The time which is used up when a player uses boost.")]
public float maxBoostCapacity = 3.3f;
[Tooltip("The point at which a player can boost again when boost is reloading.")]
public float minBoostCapacity = 0.15f;
[Tooltip("The factor with which the thrust is multiplied while boosting.")]
public float boostMagnitude = 1.5f;
[Tooltip("The flat tax on the boost when outside of a recharging zone (capacity -= rate * time in seconds).")]
public float outsideBoostRate = 0.0f;
[Tooltip("The factor of gravity which is eliminated by boosting (1 = no gravity).")]
public float boostAntiGravityFactor = 0.33f;
[Tooltip("The factor by which the player looses control over the character when being stunned (0 = no control).")]
public float stunLooseControlFactor = 0.1f;
[Tooltip("The time it takes for a critically stunned character to be controlable again.")]
public float tackleCriticalStunTime = 0.6f;
[Tooltip("The time it takes for a normally stunned character to be controlable again.")]
public float tackleBodyStunTime = 0.3f;
[Tooltip("The power with which the character is tackled away, when hit critically.")]
public float criticalTacklePowerFactor = 60f;
[Tooltip("The power with which the character is tackled away, when hit normally.")]
public float normalTacklePowerFactor = 40f;
}

View File

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

View File

@ -2,55 +2,152 @@ using ShipHandling;
using UnityEngine;
/// <summary>
/// Contains everything what makes a ship a ship, from the ship actor/3D-Model prefab to all the
/// properties which are unique to it's controls and behavior.
/// Scriptable Object which offers modifiers to the base ship properties
/// </summary>
[CreateAssetMenu(fileName = "Ship", menuName = "ScriptableObjects/Ship", order = 2)]
public class ShipProperties : ScriptableObject
{
[Tooltip("The base properties for all ships.")]
public BaseShipProperties baseProps;
[Tooltip("Prefab which contains the whole ship gameobject.")]
public GameObject shipObject = null;
public GameObject shipPrefab = null;
[Tooltip("Object which relays the user input to the ships state.")]
public ShipInputHandler shipInput = null;
[Tooltip("Name of the ship (relevant to UI and lore context).")]
public string shipName = "SpaceyMcShipface";
[Tooltip("The acceleration applied on thrust input.")]
public float thrustAcceleration = 400;
[Range(0.0f, 2.0f)]
public float thrustAccelerationModifier = 1;
[HideInInspector]
public float thrustAcceleration
{ get => baseProps.thrustAcceleration * thrustAccelerationModifier; }
[Tooltip("The velocity with which the character can rotate around it's center.")]
public float steerVelocity = 30;
[Range(0.0f, 2.0f)]
public float steerVelocityModifier = 1;
[HideInInspector]
public float steerVelocity
{ get => baseProps.steerVelocity * steerVelocityModifier; }
[Tooltip("The standard limit of character velocity.")]
public float normalMaxVelocity = 10;
[Range(0.0f, 2.0f)]
public float normalMaxVelocityModifier = 1;
[HideInInspector]
public float normalMaxVelocity
{ get => baseProps.normalMaxVelocity * normalMaxVelocityModifier; }
[Tooltip("The absolute maximum of character velocity (enforced by drag).")]
public float absolutMaxVelocity = 20;
[Range(0.0f, 2.0f)]
public float absolutMaxVelocityModifier = 1;
[HideInInspector]
public float absolutMaxVelocity
{ get => baseProps.absolutMaxVelocity * absolutMaxVelocityModifier; }
[Tooltip("The amount to which the drift of the character is reduced when anti-drift is active.")]
public float antiDriftAmount = 20;
[Range(0.0f, 2.0f)]
public float antiDriftAmountModifier = 1;
[HideInInspector]
public float antiDriftAmount
{ get => baseProps.antiDriftAmount * antiDriftAmountModifier; }
[Tooltip("The amount to which the drift of the character is always reduced.")]
public float minAntiDriftFactor = 0.2f;
[Range(0.0f, 2.0f)]
public float minAntiDriftFactorModifier = 1;
[HideInInspector]
public float minAntiDriftFactor
{ get => baseProps.minAntiDriftFactor * minAntiDriftFactorModifier; }
[Tooltip("The drag which acts opposite to the characters movement direction normally.")]
public float normalDrag = 0.1f;
[Range(0.0f, 2.0f)]
public float normalDragModifier = 1;
[HideInInspector]
public float normalDrag
{ get => baseProps.normalDrag * normalDragModifier; }
[Tooltip("The maximum drag which can act opposite to the characters movement direction.")]
public float maximumDrag = 0.3f;
[Range(0.0f, 2.0f)]
public float maximumDragModifier = 1;
[HideInInspector]
public float maximumDrag
{ get => baseProps.maximumDrag * maximumDragModifier; }
[Tooltip("The drag which acts opposite to the characters rotation direction normally.")]
public float torqueDrag = 0.2f;
[Range(0.0f, 2.0f)]
public float torqueDragModifier = 1;
[HideInInspector]
public float torqueDrag
{ get => baseProps.torqueDrag * torqueDragModifier; }
[Tooltip("The time which is used up when a player uses boost.")]
public float maxBoostCapacity = 2f;
[Range(0.0f, 2.0f)]
public float maxBoostCapacityModifier = 1;
[HideInInspector]
public float maxBoostCapacity
{ get => baseProps.maxBoostCapacity * maxBoostCapacityModifier; }
[Tooltip("The point at which a player can boost again when boost is reloading.")]
public float minBoostCapacity = 0.3f;
[Range(0.0f, 2.0f)]
public float minBoostCapacityModifier = 1;
[HideInInspector]
public float minBoostCapacity
{ get => baseProps.minBoostCapacity * minBoostCapacityModifier; }
[Tooltip("The factor with which the thrust is multiplied while boosting.")]
public float boostMagnitude = 1.5f;
[Range(0.0f, 2.0f)]
public float boostMagnitudeModifier = 1;
[HideInInspector]
public float boostMagnitude
{ get => baseProps.boostMagnitude * boostMagnitudeModifier; }
[Tooltip("The flat tax on the boost when outside of a recharging zone (capacity -= rate * time in seconds).")]
public float outsideBoostRate = 0.5f;
[Range(0.0f, 2.0f)]
public float outsideBoostRateModifier = 1;
[HideInInspector]
public float outsideBoostRate
{ get => baseProps.outsideBoostRate * outsideBoostRateModifier; }
[Tooltip("The factor of gravity which is eliminated by boosting (1 = no gravity).")]
public float boostAntiGravityFactor = 0.2f;
[Range(0.0f, 2.0f)]
public float boostAntiGravityFactorModifier = 1;
[HideInInspector]
public float boostAntiGravityFactor
{ get => baseProps.boostAntiGravityFactor * boostAntiGravityFactorModifier; }
[Tooltip("The factor by which the player looses control over the character when being stunned (0 = no control).")]
public float stunLooseControlFactor = 0.1f;
[Range(0.0f, 2.0f)]
public float stunLooseControlFactorModifier = 1;
[HideInInspector]
public float stunLooseControlFactor
{ get => baseProps.stunLooseControlFactor * stunLooseControlFactorModifier; }
[Tooltip("The time it takes for a critically stunned character to be controlable again.")]
public float tackleCriticalStunTime = 0.6f;
[Range(0.0f, 2.0f)]
public float tackleCriticalStunTimeModifier = 1;
[HideInInspector]
public float tackleCriticalStunTime
{ get => baseProps.tackleCriticalStunTime * tackleCriticalStunTimeModifier; }
[Tooltip("The time it takes for a normally stunned character to be controlable again.")]
public float tackleBodyStunTime = 0.3f;
[Range(0.0f, 2.0f)]
public float tackleBodyStunTimeModifier = 1;
[HideInInspector]
public float tackleBodyStunTime
{ get => baseProps.tackleBodyStunTime * tackleBodyStunTimeModifier; }
[Tooltip("The power with which the character is tackled away, when hit critically.")]
public float criticalTacklePowerFactor = 10f;
[Range(0.0f, 2.0f)]
public float criticalTacklePowerFactorModifier = 1;
[HideInInspector]
public float criticalTacklePowerFactor
{ get => baseProps.criticalTacklePowerFactor * criticalTacklePowerFactorModifier; }
[Tooltip("The power with which the character is tackled away, when hit normally.")]
public float normalTacklePowerFactor = 10f;
[Range(0.0f, 2.0f)]
public float normalTacklePowerFactorModifier = 1;
[HideInInspector]
public float normalTacklePowerFactor
{ get => baseProps.normalTacklePowerFactor * normalTacklePowerFactorModifier; }
}

View File

@ -16,6 +16,10 @@ public class Ship : NetworkBehaviour
public BoostCapacityUI boostUI;
// Private variables
public CameraOperator cameraOperator;
public ParticleSystem boostEffect;
public ParticleSystem gravityEffect;
public ParticleSystem jetFlameEffect;
public ParticleSystem smokeTrailEffect;
private AffectingForcesManager forceManager;
private Rigidbody body;
@ -61,9 +65,9 @@ public class Ship : NetworkBehaviour
{
InstanceID = gameObject.GetInstanceID();
state.boostCapacity = props.maxBoostCapacity;
boostUI.SetMinBoostRatio(props.minBoostCapacity / props.maxBoostCapacity);
// boostUI.SetMinBoostRatio(props.minBoostCapacity / props.maxBoostCapacity);
// GameManager.GM.RegisterPlayer(this);
cameraOperator.AddPlayer(gameObject);
cameraOperator.AddCharacter(gameObject);
tackleDetectors = GetComponentsInChildren<TackleDetection>();
foreach (TackleDetection td in tackleDetectors)
@ -86,7 +90,7 @@ public class Ship : NetworkBehaviour
// TODO: This belongs in the state object
newZone = forceManager.GetZoneOfInstance(InstanceID);
// TODO: This could be more elegant maybe?
if (MatchManager.G.matchState != MatchState.Match)
if (MatchManager.G.matchState != MatchState.Match || state.IsFrozen)
{
body.constraints = RigidbodyConstraints.FreezeAll;
UpdateSounds();
@ -115,7 +119,8 @@ public class Ship : NetworkBehaviour
transform.Rotate(0, 0, -props.steerVelocity * state.steerInput * Time.deltaTime);
// Get and apply the current Gravity
state.currentGravity = forceManager.GetGravityForInstance(InstanceID)(transform);
Transform gravitySource = forceManager.GetGravitySourceForInstance(InstanceID);
state.currentGravity = forceManager.GetGravityForInstance(InstanceID)(gravitySource, transform);
body.AddForce(state.currentGravity, ForceMode.Acceleration);
float stunFactor = isCriticalTackle ? props.stunLooseControlFactor : 1f;
@ -337,7 +342,7 @@ public class Ship : NetworkBehaviour
void UpdateSounds()
{
if (MatchManager.G.matchState != MatchState.Match)
if (MatchManager.G.matchState != MatchState.Match || state.IsFrozen)
{
if (newZone != zone
@ -346,6 +351,8 @@ public class Ship : NetworkBehaviour
AudioManager.G.BroadcastAudioEffect(AudioEffects.LowPass, transform, false);
}
ThrusterSound.StopAudio();
gravityEffect.Clear();
gravityEffect.Stop();
return;
}
float velocityFactor = math.smoothstep(0, props.absolutMaxVelocity, body.velocity.magnitude);
@ -354,18 +361,29 @@ public class Ship : NetworkBehaviour
ThrusterSound.PlayAudio(true);
ThrusterSound.ChangePitch(velocityFactor);
if (!jetFlameEffect.isPlaying)
jetFlameEffect.Play();
}
else
{
ThrusterSound.FadeOutAudio(0.3f);
jetFlameEffect.Stop();
}
if (IsBoosting())
{
if (!boostEffect.isPlaying)
boostEffect.Play();
if (!smokeTrailEffect.isPlaying)
smokeTrailEffect.Play();
if (jetFlameEffect.isPlaying)
jetFlameEffect.transform.localScale = new Vector3(1.3f, 2, 1);
BoosterSound.PlayAudio(false, true);
}
else
{
BoosterSound.ResetOneShot();
smokeTrailEffect.Stop();
jetFlameEffect.transform.localScale = new Vector3(1.3f, 1, 1);
}
if (isTackled && !isCriticalTackle)
{
@ -397,6 +415,27 @@ public class Ship : NetworkBehaviour
AudioManager.G.BroadcastAudioEffect(AudioEffects.LowPass, transform, false);
}
}
if (gravityEffect == null)
{
return;
}
if (!gravityEffect.isPlaying && state.currentGravity != Vector3.zero)
{
gravityEffect.Play();
}
else if (state.currentGravity == Vector3.zero)
{
gravityEffect.Stop();
}
if (gravityEffect.isPlaying)
{
float gravityAngle =
Vector3.SignedAngle(transform.parent.up, state.currentGravity, transform.forward);
gravityEffect.gameObject.transform.localEulerAngles =
new Vector3(0, 0, gravityAngle - transform.localEulerAngles.z);
}
}
}

View File

@ -13,6 +13,7 @@ namespace ShipHandling
// Saves the current input for steering
public float steerInput = 0;
public Vector3 currentGravity = new Vector3();
public bool IsFrozen = false;
public bool reset = false;
}
}