问题标签 [mesh-collider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3886 浏览

c# - 使用网格对撞机检测触发器但没有凸面检查

我想要一个精确的网格对撞机来触发,但问题是我不能在不使网格对撞机凸出的情况下触发。有什么方法可以在不使网格对撞机凸出的情况下检测触发器。?或者我可以通过凸面检查使网格对撞机精确吗?

0 投票
0 回答
25 浏览

unity3d - Unity3D - 编辑器中删除的对象仍会阻止光线投射

我在搅拌机中制作了一个建筑模型,并将 .blend 导入到 Unity。该建筑模型中有多个对象,包括窗户、门和地板/天花板。我为每个单独的对象添加了网格碰撞器,并将它们标记为静态以用于烘焙照明。烘烤后,我将门取消选中为静态,以便对撞机可以随动画打开和关闭。

问题是,当我在建筑物外面并且门打开时,如果我尝试通过门洞中的空间向建筑物内射击,则拍摄的光线投射会在门所在的位置停止。对于建筑物的对象,例如墙壁和门本身,它们被标记,因此如果光线投射击中它,它会播放声音并产生火花粒子。在开门时对看似空旷的空间进行拍摄,没有声音或粒子效果。光线似乎只是停在门曾经关闭的地方消失了。奇怪的是,当我在建筑物内通过同一个敞开的门空间拍摄外面时,光线投射实际上确实经过并在外面的物体上播放声音和粒子效果。当我删除门对象时,会发生同样的事情。当我删除建筑物本身时,

这是它的样子 - 从外面 拍摄

内线射门 - 内线

我将 Unity 5.6.1f1 和 C# 用于脚本。任何帮助将不胜感激。先谢谢了。

0 投票
1 回答
956 浏览

c# - 计算网格边缘之间的距离

我的鼠标在屏幕上的位置很容易找到,就像这样,

现在想象一个立方体。在该立方体上单击的任何位置,都会从单击的边缘绘制一条线,穿过对象,并在另一端停止。方向,垂直或水平,由单击哪一侧、4 侧之一、顶部或底部来确定。

如何确定距离(从网格的一个边缘到另一边缘)和方向(垂直或水平)?

想法?

到目前为止,我唯一的想法是使用碰撞检测并使用 CollisionEnter 作为起点,并以某种方式绘制一条到达网格另一端的线,并使用 CollisionExit 来确定目标(或出口)点。然后进行一些计算以确定 Enter 和 Exit 方法之间的距离。

0 投票
1 回答
11317 浏览

c# - 如何在运行时统一捕捉两个对象?

这是 3d 模型,我想将另一个像这样的模型连接到其顶部的银色连接器以及另一个模型到右侧(所以请帮我捕捉它)我想知道如何在运行时将两个 3D 对象捕捉在一起。即在“播放”期间,用户必须能够向上、向下、向左、向右拖动以将一个对象与另一个对象对齐。例如,像“乐高”,即。一个 3D 对象应该捕捉到另一个 3D 对象。我将如何实现这一目标?

这是我用于拖动的代码:

0 投票
1 回答
595 浏览

c# - MeshCollider.InflateMesh 是否有任何替代品,以便它在 Unity 中不那么占用内存?

我有一个大型游戏对象,它有许多孩子(20 - 30 个对象),每个孩子都有自己的网格对撞机。出于某种原因,我孩子的对撞机中约有一半被父母的对撞机覆盖,因为它们可能在某个角度稍微落后于它。(即 Raycast on thecar_door并且它返回car_frame父对象) 起初我认为它会像膨胀网格碰撞器一样简单,但我很快发现它不会起作用,因为它非常占用内存。所以我主要关心的是我将如何应对这种情况?是否有任何不占用大量内存的 Inflate Mesh 解决方法?

我想避免仅仅基于我正在处理的对象的绝对数量来创建单独的盒子对撞机等。我真的希望该解决方案具有可扩展性。

0 投票
1 回答
950 浏览

unity3d - 在 Unity Import 中生成碰撞器

我在搅拌机中创建了一个模型并导出为 fbx,然后将 fbx 文件添加到 unity。在生成对撞机时,unity 严重扭曲了模型网格,以至于对撞机无法拟合。

有人可以帮助我或告诉我我做错了什么。导出前是否需要检查搅拌机设置?

0 投票
1 回答
71 浏览

unity3d - 在向量列表上添加对撞机

我正在尝试检测场景中的轮廓并向每个检测到的对象添加对撞机,我使用精明的边缘检测器来获取检测到的对象的坐标。

这是我的输出图像

我需要在每条黑线上添加一个对撞机,以防止我的游戏对象进出该区域,但我不知道该怎么做。findContours 函数返回检测到的轮廓列表,每个轮廓都存储为点向量,但我如何使用它来生成对撞机?

谢谢您的帮助。

更新

这是我的源代码(用于更新方法)

0 投票
1 回答
1453 浏览

c# - Collider 并不总是检测 OnTriggerEnter

在阅读“Unity in Action”一书时,我偶然发现了一个问题。在第 3 章结束时,您将了解一个简单的 fps 游戏的基础知识。它基本上是一个简单的小关卡中的玩家(连接到它的相机),它只存在于形成墙壁和地板等的许多立方体中。这些立方体上都有盒子碰撞器。现在玩家还可以射击移动的敌人,这些敌人也可以射击。这是由 Raycast/RaycastHit 完成的。所有这一切都很完美,所以我想添加一些重新组装弹孔的东西,只需在火球(这是敌人和玩家射击的对象)击中它的墙上实例化一个黑色球体对象。这可行,但有时火球物体只是穿过墙壁。万一后面还有一堵墙,

我将火球中的速度从 20 改为 10,然后再改回 20,速度为 10 时,成功率约为 19/20,而速度为 20 时,成功率约为 6/10。

这是火球的代码,它应该检查它是否击中玩家(然后扣除生命值,效果很好)或击中敌人(然后敌人倒下,也可以正常工作)或击中墙壁,在这种情况下应该创建球体。

如您所见,我尝试的一件事是给每面墙一个 WallBehavior 脚本,如下所示:

但是到目前为止,我试图理解为什么这种情况很少发生的尝试都没有成功,我希望有人能帮助我解决这个问题,因为在我继续阅读这本书之前,我觉得这可能对我的学习至关重要!提前致谢。如果需要更多信息,我很乐意提供。请参阅下图以更好地可视化该问题。 墙上有六个球体,一个火球还在空中

编辑:如答案中所述,我相应地替换了火球脚本,但我不确定如何同样更改以下脚本。这个脚本在我的相机上,它在我的播放器对象上。在更新函数中,火球被实例化并被赋予了运动,所以我猜这会导致问题吗?

0 投票
3 回答
644 浏览

unity3d - Unity 中搅拌机罐模型的碰撞器

我在搅拌机里做了一个简单的锅模型: 这样的技能哇

所以想法是,在导入统一后,生成网格对撞机,添加脊体,我希望能够将 smothing 放入锅中。现在它正在生成对撞机,但内部没有“洞”,所以如果我在里面扔东西,它就会从顶部反弹。有什么简单的方法吗?我想避免使用立方体等统一手工制作对撞机...

图片概览: 在此处输入图像描述

0 投票
1 回答
266 浏览

unity3d - 如何与来自统一资产商店的 HEROC FANTASY CREATURES FULL PACK 相撞

因此,我以非常便宜的价格购买了统一简陋的捆绑包,其中包含大量很棒的东西,其中一个包括 HEROIC FANTASY CREATURES FULL PACK VOLUME 1。我正在搞砸它,但我意识到我有两个问题。首先是我不能从刚体和凹面网格中获得重力,所以网格很草率。但更大的问题是网格不会随着动画而改变。我假设网格不会随着动画而改变,但我找不到任何告诉我它不会改变的东西。如果有人可以向我指出教程或不和谐或任何帮助,那就太好了。