角色物理碰撞 相互被撞动问题

您好,请教一个问题,我的人物角色添加了Rigidbody,Capsule Collider, (Rigidbody中 Use Gravity勾选,Is KineMatic 不勾选)(Capsule Collider中 is trigger 不勾选),这样2个角色碰到一起,会把对方推动,推走,怎么能让双方不产生力呢,就像角色撞墙一样,都停下,或者不会把角色撞走 撞动呢,不穿透。我是使用官方 Standard Assets(for unity 2018.4)的例子 ,多多打扰 望回复,谢谢了

is kinematic 是否开启动力学,开启此项,物体不受力的作用

之前碰到过一个穿透相关的问题,希望对你有所启发:
Unity 之 记录一个关于刚体穿透的问题_陈言必行的博客-CSDN博客_unity刚体穿过地面

ontrigerenter() 检查如果相碰撞,设置受力为0,不然其他方法无法做到,你就等着吧。

首先,你要搞清楚Rigidbody和Collider分别是干嘛的,Rigidbody是负责提供力或者受力处理的,而Collider是负责碰撞检测的,碰撞往往是力的来源于是它们总是被关联在一起讨论。
所以,如果你希望人物像撞墙一样不要撞走另一个东西,那就不要给另一个东西添加Rigidbody(想想你的人物不会把地撞走,地就是没有Rigidbody的,没有Rigidbody即便碰撞也没有力的效果)。
但如果你希望人和人碰撞(也就是另一个东西也必须要有Rigidbogy)的话,又不希望穿透(IsTrigger),最好的办法是增大Rigidbody中的Mass质量,平衡人物移动的速度(冲撞力)和人物质量间的关系,很多游戏中就是这么做的,你能挤动你的队友,但非常慢,因为人的质量相对碰撞力来说很大,同时你的地面要有物理材质(Physics Material)也就是要有摩擦力。

你只需在碰撞条件下不执行碰撞代码即可
unity 所有碰撞器(触发器),碰撞条件、结果,触发条件、结果。。。以及碰撞函数、触发函数的调用。
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。

物体发生碰撞的必要条件:
  两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。

在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。

碰撞器:一群组件,它包含了很多种类,比如:Box Collider(盒碰撞体),Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。
触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。