From 7ea1fb3db99e986293f0c8e44404a29a5d33b983 Mon Sep 17 00:00:00 2001 From: numidium Date: Sun, 4 Dec 2022 17:46:23 -0500 Subject: [PATCH 1/5] Implement raycast lookahead collision for missiles --- Assets/Prefabs/Missiles/ArrowMissile.prefab | 43 ------- Assets/Prefabs/Missiles/ColdMissile.prefab | 13 --- Assets/Prefabs/Missiles/FireMissile.prefab | 13 --- Assets/Prefabs/Missiles/MagicMissile.prefab | 13 --- Assets/Prefabs/Missiles/PoisonMissile.prefab | 13 --- Assets/Prefabs/Missiles/ShockMissile.prefab | 13 --- Assets/Scripts/Game/DaggerfallMissile.cs | 112 ++++++++++--------- 7 files changed, 57 insertions(+), 163 deletions(-) diff --git a/Assets/Prefabs/Missiles/ArrowMissile.prefab b/Assets/Prefabs/Missiles/ArrowMissile.prefab index a51b28ad9b..494e59711e 100644 --- a/Assets/Prefabs/Missiles/ArrowMissile.prefab +++ b/Assets/Prefabs/Missiles/ArrowMissile.prefab @@ -150,19 +150,6 @@ MonoBehaviour: PreviewIndex: 0 PreviewID: 3 PreviewClip: 0 ---- !u!135 &135236093773449130 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1712884651827938} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Radius: 0.4 - m_Center: {x: 0, y: 0, z: 0} --- !u!108 &108732554255048532 Light: m_ObjectHideFlags: 0 @@ -250,33 +237,3 @@ MonoBehaviour: PostImpactLifespanInSeconds: 0.6 PostImpactLightMultiplier: 1.5 ImpactSound: 4 ---- !u!54 &54102960107042576 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1712884651827938} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!64 &64298782196861766 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1712884651827938} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 0 - serializedVersion: 4 - m_Convex: 1 - m_CookingOptions: 30 - m_Mesh: {fileID: 0} diff --git a/Assets/Prefabs/Missiles/ColdMissile.prefab b/Assets/Prefabs/Missiles/ColdMissile.prefab index 8799a3630d..b1a257a1c7 100644 --- a/Assets/Prefabs/Missiles/ColdMissile.prefab +++ b/Assets/Prefabs/Missiles/ColdMissile.prefab @@ -149,19 +149,6 @@ MonoBehaviour: PreviewIndex: 0 PreviewID: 3 PreviewClip: 0 ---- !u!135 &135961771109985534 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.4 - m_Center: {x: 0, y: 0, z: 0} --- !u!108 &108958489047367644 Light: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Missiles/FireMissile.prefab b/Assets/Prefabs/Missiles/FireMissile.prefab index 4792974a82..7af977bd60 100644 --- a/Assets/Prefabs/Missiles/FireMissile.prefab +++ b/Assets/Prefabs/Missiles/FireMissile.prefab @@ -149,19 +149,6 @@ MonoBehaviour: PreviewIndex: 0 PreviewID: 3 PreviewClip: 0 ---- !u!135 &135961771109985534 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.4 - m_Center: {x: 0, y: 0, z: 0} --- !u!108 &108958489047367644 Light: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Missiles/MagicMissile.prefab b/Assets/Prefabs/Missiles/MagicMissile.prefab index 801c2d8225..19fe2d4842 100644 --- a/Assets/Prefabs/Missiles/MagicMissile.prefab +++ b/Assets/Prefabs/Missiles/MagicMissile.prefab @@ -149,19 +149,6 @@ MonoBehaviour: PreviewIndex: 0 PreviewID: 3 PreviewClip: 0 ---- !u!135 &135961771109985534 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.4 - m_Center: {x: 0, y: 0, z: 0} --- !u!108 &108958489047367644 Light: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Missiles/PoisonMissile.prefab b/Assets/Prefabs/Missiles/PoisonMissile.prefab index c3d9e374d7..11e54109e6 100644 --- a/Assets/Prefabs/Missiles/PoisonMissile.prefab +++ b/Assets/Prefabs/Missiles/PoisonMissile.prefab @@ -149,19 +149,6 @@ MonoBehaviour: PreviewIndex: 0 PreviewID: 3 PreviewClip: 0 ---- !u!135 &135961771109985534 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.4 - m_Center: {x: 0, y: 0, z: 0} --- !u!108 &108958489047367644 Light: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/Missiles/ShockMissile.prefab b/Assets/Prefabs/Missiles/ShockMissile.prefab index ac61e7d00a..197a8821e1 100644 --- a/Assets/Prefabs/Missiles/ShockMissile.prefab +++ b/Assets/Prefabs/Missiles/ShockMissile.prefab @@ -149,19 +149,6 @@ MonoBehaviour: PreviewIndex: 0 PreviewID: 3 PreviewClip: 0 ---- !u!135 &135961771109985534 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.4 - m_Center: {x: 0, y: 0, z: 0} --- !u!108 &108958489047367644 Light: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Game/DaggerfallMissile.cs b/Assets/Scripts/Game/DaggerfallMissile.cs index 7d8473cf4b..d0e8de619c 100644 --- a/Assets/Scripts/Game/DaggerfallMissile.cs +++ b/Assets/Scripts/Game/DaggerfallMissile.cs @@ -4,7 +4,7 @@ // License: MIT License (http://www.opensource.org/licenses/mit-license.php) // Source Code: https://github.com/Interkarma/daggerfall-unity // Original Author: Gavin Clayton (interkarma@dfworkshop.net) -// Contributors: Allofich +// Contributors: Allofich, Numidium // // Notes: // @@ -27,9 +27,6 @@ namespace DaggerfallWorkshop.Game /// Currently ranged missiles can only move in a straight line as per classic. /// [RequireComponent(typeof(Light))] - [RequireComponent(typeof(SphereCollider))] - [RequireComponent(typeof(MeshCollider))] - [RequireComponent(typeof(Rigidbody))] [RequireComponent(typeof(DaggerfallAudioSource))] public class DaggerfallMissile : MonoBehaviour { @@ -63,11 +60,10 @@ public class DaggerfallMissile : MonoBehaviour public const float SphereCastRadius = 0.25f; public const float TouchRange = 3.0f; + Vector3 colliderPosition; Vector3 direction; Light myLight; - SphereCollider myCollider; DaggerfallAudioSource audioSource; - Rigidbody myRigidbody; Billboard myBillboard; bool forceDisableSpellLighting; bool noSpellsSpatialBlend = false; @@ -86,6 +82,12 @@ public class DaggerfallMissile : MonoBehaviour bool isArrowSummoned = false; GameObject goModel = null; EnemySenses enemySenses; + bool isTickRequested = false; + float tickTimeRemaining = 0f; + const float arrowTickRate = 30f; + const float spellTickRate = 20f; + float tickTime; + int layerMask; List targetEntities = new List(); @@ -181,14 +183,6 @@ private void Start() initialRange = myLight.range; initialIntensity = myLight.intensity; - // Setup collider - myCollider = GetComponent(); - myCollider.radius = ColliderRadius; - - // Setup rigidbody - myRigidbody = GetComponent(); - myRigidbody.useGravity = false; - // Use payload when available if (payload != null) { @@ -215,11 +209,7 @@ private void Start() if (isArrow) { // Create and orient 3d arrow - goModel = GameObjectHelper.CreateDaggerfallMeshGameObject(99800, transform); - MeshCollider arrowCollider = goModel.GetComponent(); - arrowCollider.sharedMesh = goModel.GetComponent().sharedMesh; - arrowCollider.convex = true; - arrowCollider.isTrigger = true; + goModel = GameObjectHelper.CreateDaggerfallMeshGameObject(99800, transform, ignoreCollider: true); // Offset up so it comes from same place LOS check is done from Vector3 adjust; @@ -231,10 +221,8 @@ private void Start() } else { - // Offset forward to avoid collision with player - adjust = GameManager.Instance.MainCamera.transform.forward * 0.6f; // Adjust slightly downward to match bow animation - adjust.y -= 0.11f; + adjust = new Vector3(0f, -.11f, 0); // Adjust to the right or left to match bow animation if (!GameManager.Instance.WeaponManager.ScreenWeapon.FlipHorizontal) adjust += GameManager.Instance.MainCamera.transform.right * 0.15f; @@ -247,13 +235,25 @@ private void Start() goModel.layer = gameObject.layer; } - // Ignore missile collision with caster (this is a different check to AOE targets) - if (caster) - Physics.IgnoreCollision(caster.GetComponent(), this.GetComponent()); + string layerName; + if (caster && caster != GameManager.Instance.PlayerEntityBehaviour) + layerName = "SpellMissiles"; + else + layerName = "Player"; + layerMask = ~(1 << LayerMask.NameToLayer(layerName)); + tickTime = 1f / (IsArrow ? arrowTickRate : spellTickRate); } private void Update() { + if (tickTimeRemaining <= 0f) + { + tickTimeRemaining = tickTime; + isTickRequested = true; + } + + var frameDeltaTime = Time.deltaTime; + tickTimeRemaining -= frameDeltaTime; // Execute based on target type if (!missileReleased) { @@ -279,12 +279,38 @@ private void Update() if (!impactDetected) { // Transform missile along direction vector - transform.position += (direction * MovementSpeed) * Time.deltaTime; - + transform.position += (direction * MovementSpeed) * frameDeltaTime; // Update lifespan and self-destruct if expired (e.g. spell fired straight up and will never hit anything) - lifespan += Time.deltaTime; + lifespan += frameDeltaTime; if (lifespan > LifespanInSeconds) Destroy(gameObject); + // Do fixed-interval transformation with raycast lookahead. + else if (isTickRequested) + { + isTickRequested = false; + var displacement = (direction * MovementSpeed) * tickTime; + RaycastHit hitInfo; + bool impactDetected; + if (isArrow || lifespan == frameDeltaTime) // First test should always be a raycast in case the caster is hugging a wall. + impactDetected = Physics.Raycast(colliderPosition, direction, out hitInfo, displacement.magnitude + ColliderRadius, layerMask); + else + impactDetected = Physics.SphereCast(colliderPosition, ColliderRadius, direction, out hitInfo, displacement.magnitude + ColliderRadius, layerMask); + if (impactDetected) + { + // Place self at meeting point with collider and do collision logic. + if (isArrow) + colliderPosition = hitInfo.point - (transform.forward * ColliderRadius); + else + colliderPosition += direction.normalized * hitInfo.distance; // Stop at center of sphere cast. + transform.position = colliderPosition; + DoCollision(null, hitInfo.collider); + } + else + colliderPosition += displacement; + + // Uncomment the below line to see the position used for collision in real time. + //transform.position = colliderPosition; + } } else { @@ -299,7 +325,7 @@ private void Update() } // Track post impact lifespan and allow impact clip to finish playing - postImpactLifespan += Time.deltaTime; + postImpactLifespan += frameDeltaTime; if (postImpactLifespan > PostImpactLifespanInSeconds) { myLight.enabled = false; @@ -316,32 +342,12 @@ private void Update() #region Collision Handling - private void OnCollisionEnter(Collision collision) - { - DoCollision(collision, null); - } - - private void OnTriggerEnter(Collider other) - { - DoCollision(null, other); - } - void DoCollision(Collision collision, Collider other) { // Missile collision should only happen once if (impactDetected) return; - // Set my collider to trigger and rigidbody to kinematic immediately after impact - // This helps prevent mobiles from walking over low missiles or the missile bouncing off in some other direction - // Seems to eliminate the combined worst-case scenario where mobile will "ride" a missile bounce, throwing them high into the air - // Now the worst that seems to happen is mobile will "bump" over low missiles occasionally - // TODO: Review later and find a better way to eliminate issue other than this quick workaround - if (myCollider) - myCollider.isTrigger = true; - if (myRigidbody) - myRigidbody.isKinematic = true; - // Play spell impact animation, this replaces spell missile animation if (elementType != ElementTypes.None && targetType != TargetTypes.ByTouch) { @@ -409,11 +415,6 @@ void DoTouch() { transform.position = caster.transform.position; - // Touch does not use default missile collider - // This prevent touch missile check colliding with self and blocking spell transfer - if (myCollider) - myCollider.enabled = false; - DaggerfallEntityBehaviour entityBehaviour = GetEntityTargetInTouchRange(GetAimPosition(), GetAimDirection()); if (entityBehaviour && entityBehaviour != caster) { @@ -430,7 +431,8 @@ void DoTouch() void DoMissile() { direction = GetAimDirection(); - transform.position = GetAimPosition() + direction * ColliderRadius; + transform.position = GetAimPosition(); + colliderPosition = transform.position; missileReleased = true; } From 642a246b037bf362c486414ee7484ff6744e80b4 Mon Sep 17 00:00:00 2001 From: numidium Date: Mon, 5 Dec 2022 19:03:15 -0500 Subject: [PATCH 2/5] Move transform logic to FixedUpdate --- Assets/Scripts/Game/DaggerfallMissile.cs | 74 ++++++++++-------------- Assets/Scripts/Game/Localization.meta | 8 +++ 2 files changed, 38 insertions(+), 44 deletions(-) create mode 100644 Assets/Scripts/Game/Localization.meta diff --git a/Assets/Scripts/Game/DaggerfallMissile.cs b/Assets/Scripts/Game/DaggerfallMissile.cs index d0e8de619c..0fa73a0ced 100644 --- a/Assets/Scripts/Game/DaggerfallMissile.cs +++ b/Assets/Scripts/Game/DaggerfallMissile.cs @@ -82,11 +82,6 @@ public class DaggerfallMissile : MonoBehaviour bool isArrowSummoned = false; GameObject goModel = null; EnemySenses enemySenses; - bool isTickRequested = false; - float tickTimeRemaining = 0f; - const float arrowTickRate = 30f; - const float spellTickRate = 20f; - float tickTime; int layerMask; List targetEntities = new List(); @@ -241,19 +236,10 @@ private void Start() else layerName = "Player"; layerMask = ~(1 << LayerMask.NameToLayer(layerName)); - tickTime = 1f / (IsArrow ? arrowTickRate : spellTickRate); } private void Update() { - if (tickTimeRemaining <= 0f) - { - tickTimeRemaining = tickTime; - isTickRequested = true; - } - - var frameDeltaTime = Time.deltaTime; - tickTimeRemaining -= frameDeltaTime; // Execute based on target type if (!missileReleased) { @@ -279,41 +265,15 @@ private void Update() if (!impactDetected) { // Transform missile along direction vector - transform.position += (direction * MovementSpeed) * frameDeltaTime; + transform.position += (direction * MovementSpeed) * Time.deltaTime; // Update lifespan and self-destruct if expired (e.g. spell fired straight up and will never hit anything) - lifespan += frameDeltaTime; if (lifespan > LifespanInSeconds) Destroy(gameObject); - // Do fixed-interval transformation with raycast lookahead. - else if (isTickRequested) - { - isTickRequested = false; - var displacement = (direction * MovementSpeed) * tickTime; - RaycastHit hitInfo; - bool impactDetected; - if (isArrow || lifespan == frameDeltaTime) // First test should always be a raycast in case the caster is hugging a wall. - impactDetected = Physics.Raycast(colliderPosition, direction, out hitInfo, displacement.magnitude + ColliderRadius, layerMask); - else - impactDetected = Physics.SphereCast(colliderPosition, ColliderRadius, direction, out hitInfo, displacement.magnitude + ColliderRadius, layerMask); - if (impactDetected) - { - // Place self at meeting point with collider and do collision logic. - if (isArrow) - colliderPosition = hitInfo.point - (transform.forward * ColliderRadius); - else - colliderPosition += direction.normalized * hitInfo.distance; // Stop at center of sphere cast. - transform.position = colliderPosition; - DoCollision(null, hitInfo.collider); - } - else - colliderPosition += displacement; - - // Uncomment the below line to see the position used for collision in real time. - //transform.position = colliderPosition; - } } else { + // Transform missile to point of collision. + transform.position = colliderPosition; // Notify listeners work is done and automatically assign impact if (!impactAssigned) { @@ -325,7 +285,7 @@ private void Update() } // Track post impact lifespan and allow impact clip to finish playing - postImpactLifespan += frameDeltaTime; + postImpactLifespan += Time.deltaTime; if (postImpactLifespan > PostImpactLifespanInSeconds) { myLight.enabled = false; @@ -338,6 +298,32 @@ private void Update() UpdateLight(); } + private void FixedUpdate() + { + if (!missileReleased || impactDetected) + return; + lifespan += Time.fixedDeltaTime; + // Do fixed-interval transformation with raycast lookahead. + var displacement = (direction * MovementSpeed) * Time.fixedDeltaTime; + RaycastHit hitInfo; + bool castFoundHit; + if (isArrow || lifespan == Time.fixedDeltaTime) // First test should always be a raycast in case the caster is hugging a wall. + castFoundHit = Physics.Raycast(colliderPosition, direction, out hitInfo, displacement.magnitude + ColliderRadius, layerMask); + else + castFoundHit = Physics.SphereCast(colliderPosition, ColliderRadius, direction, out hitInfo, displacement.magnitude + ColliderRadius, layerMask); + if (castFoundHit) + { + // Place self at meeting point with collider and do collision logic. + if (isArrow) + colliderPosition = hitInfo.point - transform.forward * ColliderRadius; + else + colliderPosition += direction.normalized * hitInfo.distance; // Stop at center of sphere cast. + DoCollision(null, hitInfo.collider); + } + else + colliderPosition += displacement; + } + #endregion #region Collision Handling diff --git a/Assets/Scripts/Game/Localization.meta b/Assets/Scripts/Game/Localization.meta new file mode 100644 index 0000000000..53cfc24b68 --- /dev/null +++ b/Assets/Scripts/Game/Localization.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 16514530b5848cc4dbc7922ac4f0923f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: From 52285ca481909cdc217fc4d3f2e8940f027b0a1e Mon Sep 17 00:00:00 2001 From: numidium Date: Mon, 5 Dec 2022 20:22:12 -0500 Subject: [PATCH 3/5] Use proper position variables --- Assets/Scripts/Game/DaggerfallMissile.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Game/DaggerfallMissile.cs b/Assets/Scripts/Game/DaggerfallMissile.cs index 0fa73a0ced..aa7ea0053a 100644 --- a/Assets/Scripts/Game/DaggerfallMissile.cs +++ b/Assets/Scripts/Game/DaggerfallMissile.cs @@ -371,7 +371,7 @@ void DoCollision(Collision collision, Collider other) // If missile is area at range if (targetType == TargetTypes.AreaAtRange) { - DoAreaOfEffect(transform.position); + DoAreaOfEffect(colliderPosition); } } @@ -427,7 +427,7 @@ void DoAreaOfEffect(Vector3 position, bool ignoreCaster = false) { List entities = new List(); - transform.position = position; + colliderPosition = position; // Collect AOE targets and ignore duplicates Collider[] overlaps = Physics.OverlapSphere(position, ExplosionRadius); From d9160a2f2f56215d44270c79004acb7932195d1a Mon Sep 17 00:00:00 2001 From: numidium Date: Fri, 9 Dec 2022 20:22:25 -0500 Subject: [PATCH 4/5] Remove unneeded rigidbodies from prefabs --- Assets/Prefabs/Missiles/ColdMissile.prefab | 18 +----------------- Assets/Prefabs/Missiles/FireMissile.prefab | 18 +----------------- Assets/Prefabs/Missiles/MagicMissile.prefab | 18 +----------------- Assets/Prefabs/Missiles/PoisonMissile.prefab | 18 +----------------- Assets/Prefabs/Missiles/ShockMissile.prefab | 18 +----------------- 5 files changed, 5 insertions(+), 85 deletions(-) diff --git a/Assets/Prefabs/Missiles/ColdMissile.prefab b/Assets/Prefabs/Missiles/ColdMissile.prefab index b1a257a1c7..f6309cad5c 100644 --- a/Assets/Prefabs/Missiles/ColdMissile.prefab +++ b/Assets/Prefabs/Missiles/ColdMissile.prefab @@ -235,20 +235,4 @@ MonoBehaviour: LifespanInSeconds: 8 PostImpactLifespanInSeconds: 0.6 PostImpactLightMultiplier: 1.5 - ImpactSound: 90 ---- !u!54 &54482902062701562 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 + ImpactSound: 90 \ No newline at end of file diff --git a/Assets/Prefabs/Missiles/FireMissile.prefab b/Assets/Prefabs/Missiles/FireMissile.prefab index 7af977bd60..c093004182 100644 --- a/Assets/Prefabs/Missiles/FireMissile.prefab +++ b/Assets/Prefabs/Missiles/FireMissile.prefab @@ -235,20 +235,4 @@ MonoBehaviour: LifespanInSeconds: 8 PostImpactLifespanInSeconds: 0.6 PostImpactLightMultiplier: 1.5 - ImpactSound: 89 ---- !u!54 &54482902062701562 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 + ImpactSound: 89 \ No newline at end of file diff --git a/Assets/Prefabs/Missiles/MagicMissile.prefab b/Assets/Prefabs/Missiles/MagicMissile.prefab index 19fe2d4842..1358b288ef 100644 --- a/Assets/Prefabs/Missiles/MagicMissile.prefab +++ b/Assets/Prefabs/Missiles/MagicMissile.prefab @@ -235,20 +235,4 @@ MonoBehaviour: LifespanInSeconds: 8 PostImpactLifespanInSeconds: 0.6 PostImpactLightMultiplier: 1.5 - ImpactSound: 86 ---- !u!54 &54482902062701562 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 + ImpactSound: 86 \ No newline at end of file diff --git a/Assets/Prefabs/Missiles/PoisonMissile.prefab b/Assets/Prefabs/Missiles/PoisonMissile.prefab index 11e54109e6..7e91357e8b 100644 --- a/Assets/Prefabs/Missiles/PoisonMissile.prefab +++ b/Assets/Prefabs/Missiles/PoisonMissile.prefab @@ -235,20 +235,4 @@ MonoBehaviour: LifespanInSeconds: 8 PostImpactLifespanInSeconds: 0.6 PostImpactLightMultiplier: 1.5 - ImpactSound: 87 ---- !u!54 &54482902062701562 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 + ImpactSound: 87 \ No newline at end of file diff --git a/Assets/Prefabs/Missiles/ShockMissile.prefab b/Assets/Prefabs/Missiles/ShockMissile.prefab index 197a8821e1..595a0e03cd 100644 --- a/Assets/Prefabs/Missiles/ShockMissile.prefab +++ b/Assets/Prefabs/Missiles/ShockMissile.prefab @@ -235,20 +235,4 @@ MonoBehaviour: LifespanInSeconds: 8 PostImpactLifespanInSeconds: 0.6 PostImpactLightMultiplier: 1.5 - ImpactSound: 88 ---- !u!54 &54482902062701562 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1770169996000996} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 + ImpactSound: 88 \ No newline at end of file From ed31e9ae7c8dc336015fd4e6c778a5dc4fb619b6 Mon Sep 17 00:00:00 2001 From: numidium Date: Fri, 9 Dec 2022 20:39:10 -0500 Subject: [PATCH 5/5] Remove erroneously added file --- Assets/Scripts/Game/Localization.meta | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 Assets/Scripts/Game/Localization.meta diff --git a/Assets/Scripts/Game/Localization.meta b/Assets/Scripts/Game/Localization.meta deleted file mode 100644 index 53cfc24b68..0000000000 --- a/Assets/Scripts/Game/Localization.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 16514530b5848cc4dbc7922ac4f0923f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: