第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

CapsuleCast 擊中了比膠囊更高的物體

CapsuleCast 擊中了比膠囊更高的物體

C#
茅侃侃 2022-11-22 15:41:25
我做了一個函數(shù)來預測與 CapsuleCast 的碰撞,因為我的角色正在快速移動并且很多碰撞都沒有被 unity 檢測到:private bool CheckForwardCollision(Vector3 direction){    RaycastHit hitInfo;    float maxDistance = m_DefaultSpeed * Time.deltaTime + m_Capsule.radius;    int layer = 1 << LayerMask.NameToLayer("Default");    // Debug CapsuleCast    DebugExtension.DebugCapsule(transform.position + (direction * maxDistance), transform.position + (direction * maxDistance) + (Vector3.up * m_Capsule.height), new Color(1, 0, 0), m_Capsule.radius);    // Draw last collision point    DebugExtension.DrawPoint(debug_hitpoint, Color.cyan);    // Get collision with a capsule cast which is in front of character    if (Physics.CapsuleCast(transform.position, transform.position + (Vector3.up * m_Capsule.height),            m_Capsule.radius, direction, out hitInfo, maxDistance, layer, QueryTriggerInteraction.Ignore))    {        debug_hitpoint = hitInfo.point;        return true;    }    return false;}但它會與高于膠囊高度的物體發(fā)生碰撞。這是一個示例:您可以看到高于膠囊的生命值。怎么了?謝謝
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經(jīng)驗 獲得超5個贊

經(jīng)過數(shù)小時的研究,我找到了解決方案: Physics.CapsuleCast(point1, point2, ...)并且DebugExtension.DebugCapsule(point1, point2, ...)不是以相同的方式制作的。在 DebugCapsule 上,point1 和 point2 是指向膠囊末端的點,而在 CapsuleCast 上,這些點是曲線部分的起點。所以解決方案是從點 1 和點 2 移除膠囊的半徑!


 Vector3 point1 = transform.position + Vector3.up * m_Capsule.radius;

 Vector3 point2 = transform.position - Vector3.up * m_Capsule.radius + (Vector3.up * m_Capsule.height);


 Physics.CapsuleCast(point1, point2, m_Capsule.radius, move, out hitInfo, maxDistance, layer, QueryTriggerInteraction.Ignore)



查看完整回答
反對 回復 2022-11-22
  • 1 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號