Unity选择子模型

时间:2014-01-30 22:17:17

标签: inheritance unity3d selection raycasting

我有一个由数百个子模型(肌肉)组成的人体模型。

我想点击子模型并获取其名称。

基本上,我知道两种可能的解决方案。

  1. 为每个子模型创建愚蠢的脚本OnButtonDown ..这是疯狂的。
  2. 使用光线投射创建脚本
  3. 我尝试过第二个,但对我的子模型不起作用。

    至于第一个,我在考虑是否存在某种继承......我可以为Model移动一个脚本,它将应用于所有子模型。我试图找到这样做的方法,但我失败了。

    任何想法?

1 个答案:

答案 0 :(得分:1)

确保所有子对象都有对撞机,然后使用以下代码创建javascript(unityscript)资源:

function Update () 
{
    if (Input.GetButtonDown ("Fire1")) 
    {
        var ray : Ray = Camera.main.ScreenPointToRay (Input.mousePosition);
        var hit : RaycastHit;
        if (Physics.Raycast(ray, hit)) 
        {
            Debug.Log(hit.collider.gameObject.name);
            Destroy(hit.collider.gameObject);
        }
    }
}

将其附加到始终存在的对象(如主摄像机)。