c# - UFPS + 现代废墟 = 玩家正在穿墙
问题描述
首先,我是 Unity 游戏开发领域的新手,但我在使用 C# 方面确实有一定的经验。我正在使用Modern Ruins的 Demo Scene 作为主要地图,使用开箱即用的UFPS 。出于某种原因,默认播放器 (HeroHDWeapons) 正在穿过地图上的每一个对象:墙壁、柱子,几乎所有东西。
但是,我也有一个人形资产,可用于我的 AI/BOT 使用Low Poly Soldiers,也是开箱即用的,我刚刚添加了一个胶囊对撞机,但他没有穿过墙壁 - 或者可能因为他是使用 Nav Mesh Agent 进行移动。
根据我从基本统一教程中学到的知识,我已经为我的 Player 模型尝试了我所知道的一切。我添加了一个刚体组件,它使我的玩家在勾选“使用重力”选项的情况下从地图上掉下来,但无论如何,它仍然会穿过墙壁。我还尝试添加一个胶囊对撞机,仍然通过。
我确实尝试在地图上的一个对象上添加一个胶囊对撞机,但玩家突然停止通过它。当然,在地图上的每个对象上添加一个碰撞器组件并不是一个好主意——考虑到它们有数百个。
PS:我已经做了相当多的研究,但没有一个有效。除了那些谈论使用其他语法的人,Rigidbody.MovePosition(Vector3)
因为我不知道它会对整个 UFPS 框架产生什么影响。
解决方案
你需要对撞机。就那么简单。挑选并选择要碰撞的对象,如果它更容易的话。请注意,统一引擎一次只能处理 65536 个不同的对撞机。哈哈。
根据 Unity3D 文档:
“请注意,Unity 使用的 PhysX 引擎在一个场景中最多只能处理 65536 个碰撞器。”
推荐阅读
- python - 如何在 Sympy 中计算对角线的乘积?
- java - 找出五个数字中最小的数字
- java - WildFly 15 中的 SLF4J ClassNotFoundException
- windows - 适用于 Service Catalog 的 AWS Windows 实例(YAML 配置)
- javascript - jQuery Ajax 错误中与服务器的连接失败
- python - 寻找形成矩形的交点
- html - 如何使用 CSS 选择器选择重复容器中的类元素但最后?
- git - 使用 GIT 还原一个文件的部分代码
- python - Django ORM - 使用模型的 ManyToManyField 更新 ForeignKey 字段
- c++ - acosl 不在 std 命名空间中?