【发布时间】:2017-04-16 20:40:01
【问题描述】:
我有一个用于开发的 Mixamo 模型。该模型完全装配有骨架。我正在尝试创建一个函数,该函数允许我在没有对撞机的情况下选择骨架的一部分。
此当前脚本仅适用于对撞机,
public void RegisterSelectControls()
{
if (Input.GetMouseButtonDown(0))
{
var hit = new RaycastHit();
var ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit, 100.0f))
{
var objectHitName = hit.collider.transform.name;
Debug.Log(objectHitName);
}
}
}
有没有办法检测骨架的哪一部分被点击,或者骨架中离点击最近的部分?
我不想手动将碰撞器添加到每个身体部位,这将过于多余和多余,如果我选择使用不同的模型,我将不得不修改盒子碰撞器,我想这样做而不指定盒子对撞机
编辑
我无法将碰撞器添加到模型中,将来我打算支持允许用户上传模型,在该模型中,它需要自然地选择要与之交互的脊椎部分,而无需用户设置边界脊柱的组成部分
【问题讨论】:
-
不同身体部位的不同碰撞器。 answers.unity3d.com/questions/64678/…
-
在谷歌上搜索“unity head shot”
-
是的,我知道这适用于对撞机,但是骨骼太多,我不想为所有这些人手动添加对撞机,我只想通过单击来计算这个一个二维平面并找到离那里最近的骨头
-
啊,我看到了你的问题。我会考虑的。也许是对撞机生成脚本?呵呵
-
是的,根据引用的链接,您需要手动执行 Collier 和光线投射统一进行的所有计算。
标签: c# unity3d raycasting 3d-model