我正在为Oculus开发Unity 3D游戏,我在制作物体时在玩家身上应用物理方面存在问题。因此,摆脱一个CharacterController并使用像布娃娃这样的东西不是一种选择。
我正在使用OVRPlayerController,它有一个质量为1的Rigidbody和一个盒子对撞机。我的gameObject有一个质量为100的Rigidbody和一个盒子对撞机。但是当对象击中玩家时它就会通过它,而我希望它在x方向上推动玩家。
我尝试使用onColliderHit,但它甚至无法识别播放器和对象之间的碰撞,所以我检查对象上的盒子对撞机是触发器,我使用OnTriggerEnter()来识别碰撞。
我尝试翻译玩家在碰撞时的位置,但由于某种原因,玩家被定位到我的地图中的奇怪位置。这是我使用的:
info.transform.Translate(new Vector3( -0.5f, 0.0f, 0.0f));
info.transform.rotation = Quaternion.identity;
我还尝试手动设置播放器的x位置,但这不起作用,我知道我不应该这样做。
我搜索了很长时间的答案,所以请不要回答这个问题,比如"哦,你试过谷歌搜索,有很多类似的问题"等
答案 0 :(得分:1)
只要其中一个箱式碰撞器附有非运动(Is Kinematic = false)刚体,就应该检测到碰撞。
确保“触发器”为“假”,并指定了对撞机的材质。
同时尝试搞乱刚体上的其他属性,例如碰撞检测和质量。统一文档表明你的质量不应该多于或少于其他刚体的100倍。