diff --git a/Assets/Resources/Models/Characters/Basic1/Basic1Model.prefab b/Assets/Resources/Models/Characters/Basic1/Basic1Model.prefab index 55f109f9675ce45d1a55259d29200d57e49b6fed..68a5a573db8770a6a2810546d29e7d99184187df 100644 --- a/Assets/Resources/Models/Characters/Basic1/Basic1Model.prefab +++ b/Assets/Resources/Models/Characters/Basic1/Basic1Model.prefab @@ -143,4 +143,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: dc4d5359067cdfb47a45684d6cc1482a, type: 3} m_Name: m_EditorClassIdentifier: - WeaponPivot: {x: 0.258, y: 0.75, z: 0.375} + staticWeaponPivot: {x: 0.2, y: 0, z: 0.375} + renderer: {fileID: 0} + bottomOffset: 0 diff --git a/Assets/_Scripts/Library/BaseClasses/EntityObject/WorldEntity.cs b/Assets/_Scripts/Library/BaseClasses/EntityObject/WorldEntity.cs index d1e6506fa98c5980c477b8f5ce55f51595b7569d..0b955224a21414be1eb08a90a89926724e17affb 100644 --- a/Assets/_Scripts/Library/BaseClasses/EntityObject/WorldEntity.cs +++ b/Assets/_Scripts/Library/BaseClasses/EntityObject/WorldEntity.cs @@ -84,8 +84,7 @@ public class WorldEntity : WorldObject, IRigid return; } - Vector3 center = transform.position; - Collider[] groundOverlaps = Physics.OverlapBox(center, groundDetectionSize, Quaternion.identity, groundLayers); + Collider[] groundOverlaps = Physics.OverlapBox(model.Bottom, groundDetectionSize, Quaternion.identity, groundLayers); grounded = groundOverlaps.Length != 0; } } \ No newline at end of file diff --git a/Assets/_Scripts/Library/BaseClasses/Model.cs b/Assets/_Scripts/Library/BaseClasses/Model.cs index a9fc6ec81ae70cda4d6eddd84866c62c7555dee7..e87a0e39ecf7111b172daf5d8f83863989861e29 100644 --- a/Assets/_Scripts/Library/BaseClasses/Model.cs +++ b/Assets/_Scripts/Library/BaseClasses/Model.cs @@ -3,5 +3,24 @@ using UnityEngine; public class Model : MonoBehaviour { // Attributes - public Vector3 WeaponPivot; -} \ No newline at end of file + public Vector3 staticWeaponPivot; + public new Renderer renderer; + public float bottomOffset; + + // Set-getters + public Vector3 WeaponPivot => staticWeaponPivot; + public Vector3 Bottom => new(transform.position.x, transform.position.y - bottomOffset, transform.position.z); + + // Constructors + protected void Start(){ + Renderer renderer = GetComponent<Renderer>(); + + #if STRICT + if(renderer == null) + { + Debug.LogError($"Did you seriously just create a model {name} without a renderer? How to resolve: Add a renderer (meshrenderer or skinnedmeshrenderer) to the model"); + } + #endif + bottomOffset = renderer.bounds.extents.y; + } +}