首先,我是Unity Game Development领域的新手,但是我确实有使用C#的丰富经验。我正在使用UFPS'Demo Scene作为主要地图使用Modern Ruins开箱即用。出于某种原因,默认播放器(HeroHDWeapons)正在穿过地图上的每个对象:墙壁,柱子以及几乎所有东西。
但是,我也有一个人形化的资产,可以使用Low Poly Soldiers在我的AI / BOT上使用,也是开箱即用的,我只是添加了一个Capsule Collider,但他没有穿过墙-也许是因为他正在使用Nav Mesh Agent进行运动。
我已经根据从基本的统一性教程中学到的知识,尝试了有关Player模型的所有知识。我添加了一个RigidBody组件,使我的播放器从地图上掉下来,勾选了“使用重力”选项,但是无论如何,它仍然会穿过墙壁。我还尝试添加Capsule Collider,但仍然可以通过。
我确实尝试过在地图上的一个对象上添加一个Capsule Collider,而玩家突然停止通过它。当然,在地图上的每个对象上添加Collider Component并不是一个好主意-考虑到其中有数百个。
P.S .:我已经做了相当多的研究,但没有一个起作用。除了那些谈论使用Rigidbody.MovePosition(Vector3)
之类的其他语法的人之外,因为我不知道这会对整个UFPS Framework产生什么影响。
答案 0 :(得分:0)
您需要碰撞机。就那么简单。选择并选择要碰撞的对象(如果更容易)。请注意,统一引擎一次只能处理65536个不同的对撞机。大声笑。
根据Unity3D文档:
“请注意,Unity使用的PhysX引擎最多只能处理一个场景中的65536个对撞机。”