2.如果碰撞双方是两个网格碰撞器(Mesh Collider)默认不会发生碰撞的,一方需要添加刚体(Rigidbody)并且 勾选Convex
勾选模型Generate Colliders选项并apply,之后场景中的此模型会自动添加mesh Collider组件
碰撞器和刚体设置完成后发生碰撞会触发void OnCollisionEnter(Collision other)方法,但是需要注意OnCollisionEnter回调方法所在的脚本必须在发生碰撞的一方物体上面挂载着(遇到过把这个回调挂载在多级父物体上结果一直不触发的情况...)
using System.Collections
using System.Collections.Generic
using UnityEngine
public class Collider : MonoBehaviour {
PaperPlaneController ppc
// Use this for initialization
void Start () {
ppc = GameObject.Find ("main").GetComponent(typeof(PaperPlaneController)) as PaperPlaneController
}
// 碰撞检测
public void OnCollisionEnter(Collision other)
{
// Debug.Log ("接触地面。。。。。" + other.gameObject.name)
//检测是否碰撞到地面
if (other.gameObject.tag == "Ground")
{
ppc.receiveGround ()
}
}
}
Unity网格碰撞器接缝问题通常是由于模型在使用时的位置、旋转或缩放等因素引起的。如果没有正确设置网格碰撞器,就会导致未覆盖到的区域无法进行碰撞检测,从而出现接缝问题。以下是一些可能有用的解决方法:
1. 调整模型的旋转和位置:尝试将模型旋转或移动一定角度或距离。这有助于检查是否存在运算精度误差或其他边框问题,并可能解决接缝问题。
2. 重新生成网格碰撞器:在Unity编辑器中,选择模型并进入“网格渲染器”选项卡。然后选择“生成网格碰撞器”按钮,以生成新的碰撞器。这有时可以修复接缝问题。
3. 尝试使用不同的网格碰撞器类型:在Unity中,有不同类型的网格碰撞器可供选择,如Mesh Collider、Box Collider、Sphere Collider等。尝试使用不同类型的碰撞器,看看是否可以解决接缝问题。
4. 检查网格碰撞器的缩放:如果你在编辑器中调整了网格碰撞器的缩放,可能会导致接缝问题。尝试将缩放值还原为默认值,再重新调整。
希望这些方法能够帮助你解决Unity网格碰撞器接缝问题。
第1步打开unity3d场景在里面导入一个相对更复杂的模型。第2步首先我们给这个模型添加Rigdibody刚体组件。第3步接着在Compont给其添加Mesh Collider组件。第4步勾选里面的 Convex,会默认根据自己的模型生成一个碰撞范围,但是不是很精确。第5步如果要更精确的碰撞,我们可以根据模型对应的部分,创建多个碰撞网格模型。第6步然后我们展开模型,把里面的网格ear1拖放到Mesh中,然后勾选Convex就可以在对应的位置建立碰撞范围,比如这里的右边的耳朵。第7步接着我们可以再次添加一个Mesh Collider把模型的另一个耳朵ear也添加上碰撞范围ear2。第8步同样的方式我们可以把模型需要添加碰撞的地方都添加上去,然后运行就可以得到更真实的物理效果了。特别提示作为碰撞使用的每个模型网格点面不能超过256个,否则转换的时候会报错。使用unity3D制作场景的时候,我们需要在里面导入各种模型,其中有些比较复杂的模型我们需要给其添加碰撞效果,这时候我们可以使用对应的网格碰撞组件,然后自己设置相对更精确的网格作为碰撞检测的范围就可以了,下面就给大家带来实际 *** 作,希望能帮助到有需要的人。
工具/软件
电脑型号:联想(Lenovo)天逸510S; 系统版本:Windows7; 软件版本:Unity3D
方法/步骤
第1步
打开unity3d场景在里面导入一个相对更复杂的模型。
第2步
首先我们给这个模型添加Rigdibody刚体组件。
第3步
接着在Compont给其添加Mesh Collider组件。
第4步
勾选里面的 Convex,会默认根据自己的模型生成一个碰撞范围,但是不是很精确。
第5步
如果要更精确的碰撞,我们可以根据模型对应的部分,创建多个碰撞网格模型。
第6步
然后我们展开模型,把里面的网格ear1拖放到Mesh中,然后勾选Convex就可以在对应的位置建立碰撞范围,比如这里的右边的耳朵。
第7步
接着我们可以再次添加一个Mesh Collider把模型的另一个耳朵ear也添加上碰撞范围ear2。
第8步
同样的方式我们可以把模型需要添加碰撞的地方都添加上去,然后运行就可以得到更真实的物理效果了。
特别提示
作为碰撞使用的每个模型网格点面不能超过256个,否则转换的时候会报错
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)