Unity3d 刚体通过附加力移动,但对象本身不移动';T

Unity3d 刚体通过附加力移动,但对象本身不移动';T,unity3d,Unity3d,我正在关注这个视频,这是我的拍摄功能 void shot() { 口吻闪光。播放(); 射击声; 雷卡斯特击中; if(Physics.Raycast(fpsCam.transform.position,fpsCam.transform.forward,out hit,range)) { //Log(hit.transform.name); Enemy1 target=hit.transform.GetComponent(); 如果(目标!=null) { 目标。承受伤害(伤害); } if(h

我正在关注这个视频,这是我的拍摄功能

void shot()
{
口吻闪光。播放();
射击声;
雷卡斯特击中;
if(Physics.Raycast(fpsCam.transform.position,fpsCam.transform.forward,out hit,range))
{
//Log(hit.transform.name);
Enemy1 target=hit.transform.GetComponent();
如果(目标!=null)
{
目标。承受伤害(伤害);
}
if(hit.rigidbody!=null)
{
Debug.Log(“**********************”);
hit.rigidbody.AddForce(-hit.normal*冲击力);
}
GameObject impactGo=实例化(impactEffect、hit.point、Quaternion.LookRotation(hit.normal));
破坏(冲击Go,0.3f);
}
}
添加到目标的刚体:

筒体组件:


此函数位于我的Rifle.cs脚本中,该脚本将添加到Rifle对象。一切正常。但是,当我击中一个有刚体的物体时,它不会移动,但我可以在场景中看到,当我多次击中它时,刚体正在移动。目标的刚体设置为“使用重力”,未选中“是运动学的”。我做错了什么

您添加的力可能太小,因此需要大量的射击才能产生一些效果,正如@Horothenic所说,尝试增加冲击力变量的值。查看刚体、网格渲染器和碰撞器是否附着到场景中的同一对象。问题的标题表明刚体正在移动,但渲染没有改变。

可能添加的力太小,因此需要大量的快照才能产生效果,正如@Horothenic所说,尝试增加impactForce变量的值。查看刚体、网格渲染器和碰撞器是否附着到场景中的同一对象。问题的标题表明刚体在移动,但渲染没有改变。

给力一个力模式。因为你想让物体看起来像镜头,我建议使用冲量,确保力比物体的质量大一倍

    if(hit.rigidbody != null)
    {
        Debug.Log("******************");
        hit.rigidbody.AddForce((-hit.normal * impactForce), ForceMode.Impulse);
    }

有关更多信息,请参阅此页

给力一个力模式。因为你想让物体看起来像镜头,我建议使用冲量,确保力比物体的质量大一倍

    if(hit.rigidbody != null)
    {
        Debug.Log("******************");
        hit.rigidbody.AddForce((-hit.normal * impactForce), ForceMode.Impulse);
    }

有关更多信息,请参阅此页

尝试完全删除动画师,动画有一个写入默认值的选项,如果移动是在动画上编辑的,它会因为想要设置默认值而行为不正常。

尝试完全删除动画师,动画有一个写入默认值的选项,如果动作是在动画上编辑的,它会出现错误,因为它想设置默认值。

在我做了大量谷歌搜索之后。这回答了我的问题。因此,我需要做的是关闭(未选中)对象检查器右上角的static


在我做了很多谷歌搜索之后。这回答了我的问题。因此,我需要做的是关闭(未选中)对象检查器右上角的static


你能发布一个包含
刚体
并带有
Enemy1
脚本的对象继承权的屏幕截图吗?重要的是要看到碰撞器在哪里,刚体在哪里,以及表示其视觉效果的渲染器在哪里higher@Foggzie灌肠1是没有必要的。正确的?因为第一个嵌套的if语句用于降低敌人的生命值,但是在第二个嵌套的if语句中添加了力量。如果我错了,请纠正我。我将添加我试图移动的桶的屏幕截图force@Horothenic谢谢你的评论。但是,这不是问题,因为当我击中对象时刚体正在移动,但渲染的对象没有移动(视觉对象)。你能发布一个包含
刚体
并具有
Enemy1
脚本的对象继承权的屏幕截图吗?重要的是要看到碰撞器在哪里,刚体在哪里,以及表示其视觉效果的渲染器在哪里higher@Foggzie灌肠1是没有必要的。正确的?因为第一个嵌套的if语句用于降低敌人的生命值,但是在第二个嵌套的if语句中添加了力量。如果我错了,请纠正我。我将添加我试图移动的桶的屏幕截图force@Horothenic谢谢你的评论。但是,这不是问题所在,因为当我撞击对象时刚体正在移动,但渲染的对象没有移动(视觉对象)。感谢您建议ForceMode.Pulse。它增加了拍摄的酷效:)谢谢你推荐ForceMode.Impulse。它增加了射击的凉爽效果:)