You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

角色挂载踢球脚本异常:仅旋转全为0时可触发踢球功能

问题解决:角色旋转后无法正确朝向踢球

修改后的代码

if (Input.GetKey(KeyCode.Space)) 
{
    // 直接取角色自身的前方向作为踢球方向
    Vector3 kickDirection = transform.forward;
                
    kickDirection = kickDirection.normalized;
    Debug.Log(kickDirection);
    carryingBallplayer = false;
    rbb.AddForce(kickDirection * kickForceplayer, ForceMode.Impulse);
}

问题原因与说明

你之前的代码通过playerfrount.position - playerback.position计算踢球方向,这个逻辑存在明显问题:

  • 如果playerfrount和playerback是场景中固定位置的独立对象,它们的位置差不会随角色旋转变化,只有角色处于初始旋转状态(xyz轴全0)时,这个方向才会匹配角色朝向。
  • 即便这两个对象是角色的子物体,直接使用transform.forward也更简洁可靠——transform.forward本身就是角色自身坐标系下的前方向,会实时跟随角色的旋转自动更新,完全符合你“朝向哪就踢向哪”的需求。

如果一定要保留双点计算的逻辑,必须确保这两个对象是角色对象的子节点,且计算时保持相对角色的位置不变,但显然transform.forward是最优的解决方案。

内容的提问来源于stack exchange,提问作者shohel hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:55:24